我想用正則表達式從字符串中提取某些東西。我知道我沒有使用全球運營商,因爲我只需要一個比賽,但我很好奇,爲什麼它不工作正則表達式在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