我的问题是[,\ s |,| \ s]将“,”匹配为“,”并留下额外的空间
所以我没有得到“星期六,星期一”的匹配:
(Thu|Fri|Sat)[,\s|,|\s](Mon|Tue)
通过匹配(星期四|星期五|星期六)[,\ s |,| \ s] 我在“星期六”上得到一场比赛,但是比赛。比赛是在“星期六”,(没有空格)
基本上我想在“星期六,星期一”,“星期六,星期一”,“星期一星期一”而不是“星期六”获得一场比赛
由于
答案 0 :(得分:4)
(Thu|Fri|Sat)[,\s]\s*(Mon|Tue)
这将允许逗号或空格以及Mon
或Tue
之前的任何额外空格
你的版本混淆了角色类和交替的概念。使用|
分隔选项的替换必须在括号内。我们可以使用(?: )
语法使这些括号不可捕获。
上面,我使用了一个角色类。要使用交替:
(Thu|Fri|Sat)(?:,|\s)\s*(Mon|Tue)
我使用\s
来表示空格,但为了您的目的,您可以用文字空格替换它们。
答案 1 :(得分:2)
尝试以下方法
\s?[, ]\s?
答案 2 :(得分:0)
以@Jay回答为基础。我只想使用贪婪的比赛。
(Thu|Fri|Sat)(?:,|\s)+(Mon|Tue)