【问题标题】:Could someone help me about to create a posix regex?有人可以帮我创建一个 posix 正则表达式吗?
【发布时间】:2021-04-25 16:24:54
【问题描述】:

有人可以帮我创建一个 posix 正则表达式来检查输入的字符串是否遵循以下模式:

周一、周二、周三、周四、周五、周六、周日

或者

周一、周三、周五

或者

星期天

然后:

  1. 星期几,后跟“,”
  2. 我无法重复一周中的某一天
  3. 字符串的最后一天不能有“,”

【问题讨论】:

  • 是的,如果你尝试了一些东西并且遇到了你在这里用代码演示并详细描述的问题,那么你一定会在这里找到帮助。为了便于修补,请尝试regex101.com 通常请使用tour 并阅读How to Ask
  • 我就是不知道该怎么做,我该怎么解释呢??

标签: java regex postgresql posix-ere


【解决方案1】:

如果天的顺序无关紧要,请使用:

^((Monday|Tuesday|Wednesday|Thursday|Friday|Saturday|Sunday)(, (?!$)(?!.*\2)|$))*$

查看演示here

解释:

  • 内括号用于表示天数的分离。
  • ^ 匹配字符串的开头。
  • $ 匹配字符串的结尾。
  • (?!$) 表示逗号不能跟在字符串的末尾。
  • (?!.*\2) 表示后面不跟任意数量的字符(.*)和第二组(\2),也就是最里面的一组。

关于最后一点,我建议你google一下正则表达式匹配组,lookarounds backreferences

【讨论】:

  • 帮别人做作业是让他/她更懒惰和更依赖的最好方法。
  • @Joe 他解释了他是如何做到的,我明白了,所以我知道问题出在哪里......但是,非常感谢你的魂器
猜你喜欢
  • 2014-03-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-08-29
  • 2012-04-14
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多