Regex-为什么是空括号
Regex - why empty parenthesis?
我有一个regex要更新,里面有一个空括号。我想知道:目的是什么?我找不到什么。
正则表达式:
(DE)()([0-9]{1,12})
因为,如果它没有用,我可以删除它。
我知道空括号有一个可能的应用程序,那就是如果您计划使用正则表达式来确定某个字符串是否与子正则表达式的排列匹配。
例如,
^(?:A()|B()|C()){3}'1'2'3$
将匹配ABC
或CBA
或BCA
,但不匹配AAA
或BCC
等
但这看起来并不是正则表达式的作者想要的。
可能(也只是可能)其他代码根据捕获组的编号使用捕获组。
我碰巧更改了一个正则表达式,更改了括号,因此匹配的组也发生了更改,其余的代码也停止了工作,因为这取决于匹配组的数量。
我建议你在删除括号之前先核实一下是否是这种情况。
相关文章:
- 为什么当我在数组上测试regex时,它会返回false
- 为什么JS RegEx提取多个值(只有一个匹配)
- 为什么regex只验证字段中的一个字符,而不是所有输入的字符
- 为什么除了html5输入模式属性之外,这个简单的regex在任何地方都能工作
- 当有多个#时,为什么regex不匹配
- 为什么javascript替换方法(没有regex)在angularjs表达式中不起作用来删除 
- 为什么字符串搜索的参数表现得像Regex
- 为什么我的RegEx没有't替换多次出现的内容
- 为什么Javascript's regex.exec()并不总是返回相同的值
- 为什么RegEx输出转义文本而不是HTML
- 需要了解为什么regex没有替换所有匹配项
- 为什么这个简单的JavaScript密码regex不起作用
- 为什么regex构造函数需要进行双转义
- Javascript Regex应该通过.test(),但似乎失败了——为什么
- 为什么当输入包含换行符时regex会失败
- 为什么用Javascript RegEx在文本周围包装标签会将标签显示为文本
- jqunit,测试regex在某个时候失败了,为什么
- Regex-为什么是空括号
- Regex让我很困惑,为什么会赢'它不能正确解析
- 为什么regex需要很长时间来计算某个值