我有以下 Java 正则表达式,不是我写的,我正在尝试修改:
^class-map(?:(\\s+match-all)|(\\s+match-any))?(\\s+[\\x21-\\x7e]{1,40})$
^ ^
类似于 this one .
注意第一个问号。这是否意味着该组是可选的?对应的)
后面已经有问号了。正则表达式中的冒号有特殊含义吗?
正则表达式编译得很好,并且已经有 JUnit 测试显示它是如何工作的。只是我有点疑惑为什么第一个问号和冒号会出现。
最佳答案
(?:
启动一个非捕获组。它与 (
没有什么不同,除非您在使用后从正则表达式中检索组。参见 What is a non-capturing group? What does a question mark followed by a colon (?:) mean?。
关于java - 正则表达式:?: notation(问号和冒号),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11530862/