匹配列表与给定单词分隔给定单个正则表达式的分隔符列表?

时间:2016-03-20 17:35:22

标签: javascript regex

需要检测句子中的工作日名称列表,以逗号,单词AND和“&”分隔符号与正则表达式。

我可以混合这种模式:

\b(sunday|monday|tuesday|wednesday|thursday|friday|saturday)(?:s)?\b

(,|\band\b|&)\s?

所以我可以得到这个结果:

“这只是星期一,没人关心星期一。” false没有商品

“我喜欢星期日和星期六true有超过1场比赛,和分隔符

周二,周三,周五,晚上11点至凌晨12点”的快乐时光“true 3个工作日,逗号分隔符

2 个答案:

答案 0 :(得分:2)

这是一个详尽的解决方案,有一些alterations

正则表达式:

((sunday|monday|tuesday|wednesday|thursday|friday|saturday)s?,?\s+){2,}|((sunday|monday|tuesday|wednesday|thursday|friday|saturday)s?,?\s+)+(and\s|&\s)((sunday|monday|tuesday|wednesday|thursday|friday|saturday)s?,?)

<强>解释

  • ((sunday|monday|tuesday|wednesday|thursday|friday|saturday)s?,?\s+){2,}匹配以逗号分隔的天数列表。

如果在一周的最后一天之前有&amp; ,则此部分将进行匹配。

  • ((sunday|monday|tuesday|wednesday|thursday|friday|saturday)s?,?\s+)+ and & 之前的列表相匹配。

  • (and\s|&\s)((sunday|monday|tuesday|wednesday|thursday|friday|saturday)s?,?)匹配一周的最后一天。

Regex101 Demo

答案 1 :(得分:0)

<强>正则表达式

(((sunday|monday|tuesday|wednesday|thursday|friday|saturday)(?:s)?\s?(?:,|and|&)?\s?){2,})

Try demo