我只是在javascript中使用字符串的原生替换方法.是否有任何类似团体的事情.如果不是,如何在字符串中排序组,其中组封装其他打开和关闭的括号(潜在组).例如,
var string = "my name is name that is named man".replace(/((name)|(is)|(man))/g, "$1");
Run Code Online (Sandbox Code Playgroud)
该小组将引用1美元,2美元,3美元和4美元.我已经在我的本地计算机上尝试过它(在firebug上),但它给了我无法理解的结果.对此的明确解释将不胜感激!!
在某些语言中,您可以指定一个标志来表示您希望组的顺序。在 Javascript 中,您无法指定它。它们将按照左括号出现的顺序排列。因此,在上面的示例中,这些组将按顺序排列:
1)((name)|(is)|(man))
2)(name)
3)(is)
4)(man)
要从上面的字符串中更清楚地查看输出,请执行:
"my name is name that is named man".replace(/((name)|(is)|(man))/g, '1($1) 2($2) 3($3) 4($4)\n');
Run Code Online (Sandbox Code Playgroud)
然后,当每场比赛到达时,您可以清楚地看到每组中的内容:
"my 1(name) 2(name) 3() 4()
1(is) 2() 3(is) 4()
1(name) 2(name) 3() 4()
that 1(is) 2() 3(is) 4()
1(name) 2(name) 3() 4()
d 1(man) 2() 3() 4(man)"
Run Code Online (Sandbox Code Playgroud)
当到达第一个匹配项时,您可以看到与组 2 匹配的字符串(name)也与组 1 匹配。第 3 组和第 4 组没有任何匹配。每场比赛也是如此。在这种情况下,由于第一组包装了所有内容,因此它将始终包含整个比赛,并且由于内部部分是or,因此这三个组中只有一个将包含每个比赛的任何文本。