案文是:
Here is some text!
正则表达式(寻找单个匹配)是:
Here is (\w+\s?)+
在.NET中有一个匹配:Here is some text
...但在javascript中有两个:Here is some text
和text
。
为什么js中只有两个匹配,.NET中只有一个?
答案 0 :(得分:2)
正则表达式中的括号创建一个捕获组。在js中你看到的是完全匹配和组匹配,在.NET中你只看到完全匹配(尽管你也应该能够访问该组)。
如果您不想捕获括号内的内容,请改为使用此正则表达式:
Here is (?:\w+\s?)+
答案 1 :(得分:0)
如果你想和.Net一样给你匹配,在js do:
var regex = new RegExp("Here is (\\w+\\s?)+", "g");
var txt = "Here is some text!";
while (match = regex.exec(txt)) {
window.alert(match[0]);
}
在您的情况下,它应该只提醒您一次。每个匹配数组包含位置0的匹配,然后包含所有捕获组,但您似乎不需要它们。