正则表达式:?:表示法(问号和冒号表示法)

我有以下Java正则表达式,我没有编写,并且正试图修改:

^class-map(?:(\\s+match-all)|(\\s+match-any))?(\\s+[\\x21-\\x7e]{1,40})$

^ ^

与此相似。

请注意第一个问号。这是否意味着该组是可选的?对应的后面已经有一个问号)。冒号在正则表达式中有特殊含义吗?

regex可以很好地编译,并且已经有JUnit测试显示它如何工作。只是我对为什么第一个问号和冒号存在感到有些困惑。

回答:

(?:启动一个非捕获组。(除非您在使用后从正则表达式中检索组,否则没有什么不同。请参阅什么是非捕获组?问号后跟冒号(?:)是什么意思?。

以上是 正则表达式:?:表示法(问号和冒号表示法) 的全部内容, 来源链接: utcz.com/qa/428560.html

回到顶部