为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

蓝山帝景 2021-10-27 09:56:45
我在 Java 中使用这个正则表达式:^(Mon(?:.?|day)?)(?:[\.,])?$(这可以在这里测试)我想捕捉这一天,然后是可选的.or ,。如果是星期一,我想捕获Monday或Mon。但是,我不希望将可选.或,保存在捕获组中。这似乎只适用于“星期一”,而不适用于“星期一”。(见链接)。我怎样才能做到这一点?
查看完整描述

1 回答

?
江户川乱折腾

TA贡献1851条经验 获得超5个赞

您可以使用

^(Mon(?:day)?)[.,]?$

查看正则表达式演示

细节

  • ^- 字符串的开头(如果使用,请省略.matches()

  • (Mon(?:day)?) - 捕获组 1:

    • Mon - 文字子串

    • (?:day)?- 一个可选的day字符序列

  • [.,]? - 一个可选的点或逗号

  • $- 字符串结尾(如果使用,请省略.matches()


查看完整回答
反对 回复 2021-10-27
  • 1 回答
  • 0 关注
  • 167 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信