RegExp DOW可选重复

时间:2015-09-28 19:21:41

标签: regex

我试图找出RegExp用于DOW条目的可选重复模式 我希望支持的模式示例如下:

MON
MON,TUE
TUE,WED,THU
FRI,SAT,SUN,MON

最多可能包括本周的所有日期 基本上每个DOW为3个字符 - 必须是3个字符(但不仅限于 MON,TUE,WED 等。可能是任何3个AZ字符)。
如果输入了多个DOW,则用逗号分隔,不带尾随逗号。

我尝试了各种可能的选择,但我似乎无法做到这一点。

非常感谢您的帮助/建议 感谢

1 个答案:

答案 0 :(得分:1)

如果您正在寻找与逗号分隔的3个字母(大写)序列字符串匹配的模式,您可以使用基于分组机制的模式并使用限制量词{3}来完全匹配3个字母:

^[A-Z]{3}(?:,[A-Z]{3})*$

请参阅demo

  • ^ - 开始o
  • [A-Z]{3} - 正好是3个字母
  • (?:,[A-Z]{3})* - 0个或更多组(由于*)逗号后跟3个字母的序列
  • $ - 字符串结尾

如果您需要匹配确切的字母序列,则需要使用交替运算符|。例如,仅匹配DOW:

^(?:MON|TUE|WED|THU|FRI|SAT|SUN)(?:,(?:MON|TUE|WED|THU|FRI|SAT|SUN))*$