有人可以帮我创建一个 posix 正则表达式来检查输入的字符串是否遵循以下模式:
周一周二周三周四周五周六周日
或者
周一、周三、周五
或者
星期日
然后:
- 星期几后跟“,”
- 我无法重复一周中的某一天
- 字符串的最后一天不能有“,”
有人可以帮我创建一个 posix 正则表达式来检查输入的字符串是否遵循以下模式:
周一周二周三周四周五周六周日
或者
周一、周三、周五
或者
星期日
然后:
如果天的顺序无关紧要,请使用:
^((Monday|Tuesday|Wednesday|Thursday|Friday|Saturday|Sunday)(, (?!$)(?!.*\2)|$))*$
在此处查看演示。
解释:
^
匹配字符串的开头。$
匹配字符串的结尾。(?!$)
表示逗号不能跟在字符串的末尾。(?!.*\2)
表示后面没有任意数量的字符 ( .*
) 和第二组 ( \2
),即最里面的一组。关于最后一点,我建议你谷歌关于正则表达式匹配组,lookarounds backreferences