【问题标题】:How are parenthesis used in Regular Expressions with Javascript?Javascript 的正则表达式中如何使用括号?
【发布时间】:2015-05-28 14:59:39
【问题描述】:

在我看来,括号在正则表达式中有两种含义:

1- 它们用于捕获 - 如: /(\d{3})-(\d{3})-(\d{4})/g

2 - 它们用于分组 - 如: /(phone|#)?\d{3}-\d{3}-\d{4}/g

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

【问题讨论】:

  • 注意,你的理解有点错误:1-用于分组捕获但该组只有一个备选方案,2-用于分组捕获与包含两个备选方案的组。 () 只有一个含义 - 组(意味着捕获)。 ?: 修饰符禁用捕获。

标签: javascript regex


【解决方案1】:

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

/(?:phone|#)/

左括号后面的?: 表示它不应该捕获任何东西。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-10-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-07-20
    • 2012-08-29
    相关资源
    最近更新 更多