我試圖獲得使用正則表達式的JavaScript字符串所有可能的匹配。看來,我這樣做的方法不匹配已經匹配的字符串的部分。的Javascript正則表達式 - 查找所有可能的匹配,即使在已經拍攝的匹配
變量:
var string = 'A1B1Y:A1B2Y:A1B3Y:A1B4Z:A1B5Y:A1B6Y:A1B7Y:A1B8Z:A1B9Y:A1B10Y:A1B11Y';
var reg = /A[0-9]+B[0-9]+Y:A[0-9]+B[0-9]+Y/g;
代碼:
var match = string.match(reg);
所有匹配的結果我得到:
A1B1Y:A1B2Y
A1B5Y:A1B6Y
A1B9Y:A1B10Y
匹配的結果我想:
A1B1Y:A1B2Y
A1B2Y:A1B3Y
A1B5Y:A1B6Y
A1B6Y:A1B7Y
A1B9Y:A1B10Y
A1B10Y:A1B11Y
在我的腦海中,我希望A1B1Y:A1B2Y
與A1B2Y:A1B3Y
一起匹配,儘管字符串中的A1B2Y
將需要成爲兩個匹配的一部分。
一個超前會讓你得到你想要的比賽,但不幸的是它不會返回預測的部分。我還沒有找到一種方法來捕捉JavaScript的lookahead。也許有,不知道。你的正則表達式是:var reg =/A [0-9] + B [0-9] + Y(?=:A [0-9] + B [0-9] + Y)/ g; – Someone 2013-02-13 21:19:56
@Mantriur:看我的回答... – nhahtdh 2013-02-13 21:22:39
也許'string.split(「:」)'然後遍歷數組可能會給你一個更好的結果。 – Bergi 2013-02-13 21:23:51