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