2013-12-10 38 views
1

在我看来,圆括号有两个含义正则表达式:正则表达式中使用括号如何使用Javascript?

1 - 它们被用来捕捉 - 如: /(\d{3})-(\d{3})-(\d{4})/g

2 - 它们被用来组 - 在: /(phone|#)?\d{3}-\d{3}-\d{4}/g

有没有一种方法可以表明正则表达式应该组合在一个表达式上并捕获到另一个表达式上 - 似乎每个表达式都应该有不同的表示法。

+1

请注意,您的理解有点不对:1-用于分组和捕获,但该组只有一个备选方案,2-用于分组和捕获包含两个备选方案的组。 '()'只有一个含义 - 组(意味着捕获)。 '?:'修饰符禁用捕获。 – slebetman

回答

2

是的,你可以这样定义非捕获组:

/(?:phone|#)/ 

?:右后左括号表明它不应该捕获任何。

+0

甜 - 谢谢! –

相关问题