正则表达式逗号或逗号空间或空间

时间:2012-04-26 21:28:31

标签: .net regex

我的问题是[,\ s |,| \ s]将“,”匹配为“,”并留下额外的空间

所以我没有得到“星期六,星期一”的匹配:

(Thu|Fri|Sat)[,\s|,|\s](Mon|Tue)

通过匹配(星期四|星期五|星期六)[,\ s |,| \ s] 我在“星期六”上得到一场比赛,但是比赛。比赛是在“星期六”,(没有空格)

基本上我想在“星期六,星期一”,“星期六,星期一”,“星期一星期一”而不是“星期六”获得一场比赛

由于

3 个答案:

答案 0 :(得分:4)

(Thu|Fri|Sat)[,\s]\s*(Mon|Tue)

这将允许逗号或空格以及MonTue之前的任何额外空格

你的版本混淆了角色类和交替的概念。使用|分隔选项的替换必须在括号内。我们可以使用(?: )语法使这些括号不可捕获。

上面,我使用了一个角色类。要使用交替:

(Thu|Fri|Sat)(?:,|\s)\s*(Mon|Tue)

我使用\s来表示空格,但为了您的目的,您可以用文字空格替换它们。

答案 1 :(得分:2)

尝试以下方法 \s?[, ]\s?

答案 2 :(得分:0)

以@Jay回答为基础。我只想使用贪婪的比赛。

(Thu|Fri|Sat)(?:,|\s)+(Mon|Tue)