我想用正则表达式从字符串中提取某些东西。我知道我没有使用全球运营商,因为我只需要一个比赛,但我很好奇,为什么它不工作正则表达式在google脚本中产生错误的结果
var string = 'a02_ability10'
string.match(/(?:^a)([\d]+)/gi)
这并没有给我任何结果。删除它工作的全球运营商。我已经在正则表达式测试中与全局运算符一起使用它,并且它可以工作。
试图让“02”出
为什么是不是在这里工作?
我想用正则表达式从字符串中提取某些东西。我知道我没有使用全球运营商,因为我只需要一个比赛,但我很好奇,为什么它不工作正则表达式在google脚本中产生错误的结果
var string = 'a02_ability10'
string.match(/(?:^a)([\d]+)/gi)
这并没有给我任何结果。删除它工作的全球运营商。我已经在正则表达式测试中与全局运算符一起使用它,并且它可以工作。
试图让“02”出
为什么是不是在这里工作?
没有GI,它给在下一位置的充分匹配的字符串和组匹配的字符串([\ d]即,12)。(只返回第一匹配的字符串)
变种字符串= 'a12_ability10'
string.match(/(?:^ A)([\ d] +)/)
结果:[ “A12”, “12”,指数:0,输入: “a12_ability10”]
With 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);
我刚刚运行在谷歌的脚本程序和记录器输出代码为 空 空 [A12,12] [A12,A10] ,这其中就有我的问题为什么它给予空 为什么gi给我完整的结果,以前我会得到第一个数组[0]包含完整的结果和第二个[1]包含我的匹配,即'a12'为什么是(?: )不匹配并包含结果 – mfizz
返回数组'[“A02”]'是你所期望的(你永远不会指出你想得到什么,或者你实际得到的,所以很难知道你的问题是什么。 。)...没有/ g它会返回'[“a02”,“02”]'...因此,如果您将**添加到问题**您的预期结果 –
另外,你应该删除你的模式中无用的所有东西(8个字符找) –
什么是正则表达式测试器,并且它是否处于JavaScript模式? – Keith