Ash*_*Ash 2 javascript regex regex-greedy
为什么:
/(\[#([0-9]{8})\])/g.exec("[#12345678] [#87654321] [#56233001] [#36381069] [#23416459] [#56435355]")
Run Code Online (Sandbox Code Playgroud)
返回
["[#12345678]","[#12345678]","12345678"]
我希望它能匹配所有这些数字,但它看起来太贪心了.
[#12345678] [#87654321] [#56233001] [#23438459] [#56435355] 12345678 87654321 56233001 36381069 23416459 56435355
这是.exec()有效的.要获得多个结果,请在循环中运行它.
var re = /(\[#([0-9]{8})\])/g,
str = "[#12345678] [#87654321] [#56233001] [#36381069] [#23416459] [#56435355]",
match;
while (match = re.exec(str)) {
console.log(match);
}
Run Code Online (Sandbox Code Playgroud)
此外,外部捕获组似乎无关紧要.你可能应该摆脱它.
/\[#([0-9]{8})\]/g,
Run Code Online (Sandbox Code Playgroud)
结果:
[
"[#12345678]",
"12345678"
],
[
"[#87654321]",
"87654321"
],
[
"[#56233001]",
"56233001"
],
[
"[#36381069]",
"36381069"
],
[
"[#23416459]",
"23416459"
],
[
"[#56435355]",
"56435355"
]
Run Code Online (Sandbox Code Playgroud)