正则表达式在谷歌脚本中产生错误的结果

时间:2017-09-14 06:48:23

标签: javascript regex google-sheets google-spreadsheet-api

我正在尝试使用正则表达式从字符串中提取内容。我知道我不必使用全局运算符,因为我只需要一个匹配,但我很好奇为什么它不起作用

var string = 'a02_ability10'

string.match(/(?:^a)([\d]+)/gi)

这不会给我任何结果。删除它工作的全局运算符。我在regex测试器中使用它与全局运算符一起工作。

试图让“02”出局

为什么不在这里工作?

1 个答案:

答案 0 :(得分:0)

如果没有 gi ,它会在下一个位置给出完全匹配的字符串和组匹配的字符串([\ d],即12)。(仅返回第一个匹配的字符串)

var string =' a12_ability10'

string.match(/(?:^ A)([\ d] +)/)

结果:[" a12"," 12&#34 ;,索引:0,输入:" a12_ability10"]

使用 gi :它只会提供完全匹配的字符串。

结果:[" a12"]

请参阅以下示例以便更好地理解。



var string = 'a12_ability10'

var result =string.match(/(?:^a)([\d]+)/)
console.log(result);

var string = 'a12_ability10'

var result =string.match(/(?:^a)([\d]+)/gi)
console.log(result);

var string = 'a12_a10'

var result= string.match(/(?:a)([\d]+)/);
console.log(result);


var result= string.match(/(?:a)([\d]+)/gi);
console.log(result);