Ruby 正则表达式将某物放入组中(在或的情况下)

Ruby 正则表达式将某物放入组中(在或的情况下),ruby,regex,replace,Ruby,Regex,Replace,我将一个数字和一个字母按此正则表达式分组: (\d*)(\D) 当数字存在时,结果为: [12,letter] ["",letter] 当没有数字时,结果是: [12,letter] ["",letter] 我怎样才能放一些东西而不是空字符串? 像这样: (\d*|put "1")(\D) Regex可以做类似的事情吗?您可以编写自己的匹配函数 函数匹配输出(regexp,str){ var match=str.match(regexp); 如果(匹配[1]=“”){ 匹配[1]=

我将一个数字和一个字母按此正则表达式分组:

(\d*)(\D)
当数字存在时,结果为:

[12,letter]
["",letter]
当没有数字时,结果是:

[12,letter]
["",letter]
我怎样才能放一些东西而不是空字符串? 像这样:

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

Regex可以做类似的事情吗?

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

函数匹配输出(regexp,str){
var match=str.match(regexp);
如果(匹配[1]=“”){
匹配[1]=“1”;
}
复赛;
}
结果=匹配输出(/(\d*)(\d)/,“L”);

控制台日志(结果)否,正则表达式只匹配文本中的内容,您不能使用它传递除-此处-空字符串以外的任何默认值。请记住,在您成功的情况下:[12,字母],这是整数12,但在默认情况下[“1”,字母],这是字符串“1”,而不是整数;如果结果的第一个元素是什么类很重要。