【问题标题】:RegularExpression put something in group (in case of OR)正则表达式将某些内容放在组中(在 OR 的情况下)
【发布时间】:2018-04-09 12:39:25
【问题描述】:

我已经用这个正则表达式对一个数字后跟一个字母进行了分组:

(\d*)(\D)

当数字存在时,结果是:

[12,letter]

当没有数字时,结果是:

["",letter]

我怎样才能放一些东西而不是空字符串? 像这样:

(\d*|put "1")(\D)

Regex 可以做类似的事情吗?

【问题讨论】:

  • 不,正则表达式只匹配文本中的内容,您不能使用它来传递除 - 这里 - 空字符串之外的任何默认值。

标签: ruby regex replace


【解决方案1】:

您可以编写自己的匹配函数。

function matchPut(regexp, str) {
 var match = str.match(regexp);
 if(match[1] === "") {
   match[1] = "1";
 }
 return match;
}
result = matchPut(/(\d*)(\D)/,"L");
console.log(result);

【讨论】:

  • 请记住,在您成功的情况下:[12, letter],这是整数 12,但在默认情况下,["1", letter],这是字符串 '1',而不是一个整数;如果结果的第一个元素是什么类很重要。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2018-02-26
  • 2012-10-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-06-22
  • 1970-01-01
相关资源
最近更新 更多