Java Regex:为什么非捕获组被捕获?

我在 Java 中使用这个正则表达式:

^(Mon(?:.?|day)?)(?:[\.,])?$(这可以在这里测试)

我想捕捉这一天,然后是可选的.or ,。如果是星期一,我想捕获MondayMon。但是,我不希望将可选.,保存在捕获组中。这似乎只适用于“星期一”,而不适用于“星期一”。(见链接)。

我怎样才能做到这一点?


蓝山帝景
浏览 168回答 1
1回答

江户川乱折腾

您可以使用^(Mon(?:day)?)[.,]?$查看正则表达式演示细节^- 字符串的开头(如果使用,请省略.matches())(Mon(?:day)?) - 捕获组 1:Mon - 文字子串(?:day)?- 一个可选的day字符序列[.,]? - 一个可选的点或逗号$- 字符串结尾(如果使用,请省略.matches())
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java