Javascript中正则表达式中“?:”的用法是什么?

时间:2013-09-09 14:26:49

标签: javascript regex

我在下一页看到了一篇帖子:

Trim string in JavaScript?

在Mr.Pradeep Kumar Mishra的答案中(第二个答案)我看到了一个函数(Fulltrim),但我无法理解正则表达式中的'?:'用法,所以有没有人可以解释下面的正则表达式:

 /(?:(?:^|\n)\s+|\s+(?:$|\n))/g,'').replace(/\s+/g

或解释此正则表达式的所有部分。

由于

2 个答案:

答案 0 :(得分:1)

?:告诉引擎不要进行反向引用(实际上不捕获捕获组中的内容)。

http://www.regular-expressions.info/brackets.html

答案 1 :(得分:0)

?:是非捕获组;也就是说,不会对匹配的项目进行反向引用的组。例如,(?:a|b)表示“匹配'a'或'b'而不存储反向引用”。

例如,此正则表达式创建不匹配的条件组('a'或'b'),后跟匹配的条件组('a'或' b'):

(?:a|b)(a|b)

enter image description here