【发布时间】:2019-07-24 03:51:13
【问题描述】:
输入文字:
周一至周五上午 6:00 至晚上 8:00
周六至周日上午 6:30 至晚上 8:00
我需要匹配粗体文本,所以下面的正则表达式:
(Monday|Tuesday|Wednesday|Thursday|Friday|Saturday|Sunday) (to) (Monday|Tuesday|Wednesday|Thursday|Friday|Saturday|Sunday)
如何通过避免重写(Monday|Tuesday|Wednesday|Thursday|Friday|Saturday|Sunday) 捕获组来简化正则表达式?
【问题讨论】:
-
你在什么引擎中实现这个?
-
我正在使用 Javascript
-
您将不得不离开纯正则表达式机制并使用周围语言的功能,例如文本变量中的正则表达式的一部分。这会是一个选择吗?
-
嗯,是的。我可以
let captureGroup = (Monday|Tuesday...)和let regex = captureGroup + ' (to) ' + captureGroup但我正在寻找一个正则表达式机制 -
如果您不需要单独的捕获,并且模式必须出现在输入的开头,那么您可以这样做
^(( to |^)(Monday|Tuesday)){2}
标签: javascript regex