我的问题是[中,\ s |,| \ S]将匹配“‘如’,”并留下一个额外的空间正则表达式逗号或逗号分隔或空间
所以我没有得到一个匹配“星期六,星期一”用:
(Thu|Fri|Sat)[,\s|,|\s](Mon|Tue)
通过匹配上(星期四|星期五|星期六),\ S |,| \ S] 我得到一个匹配 “星期六”,但match.Value是“星期六”(无空格)
基本上我也想获得“周六,周一”“周六,周一”,“周六周一”的匹配,而不是“SatMon”
感谢
我的问题是[中,\ s |,| \ S]将匹配“‘如’,”并留下一个额外的空间正则表达式逗号或逗号分隔或空间
所以我没有得到一个匹配“星期六,星期一”用:
(Thu|Fri|Sat)[,\s|,|\s](Mon|Tue)
通过匹配上(星期四|星期五|星期六),\ S |,| \ S] 我得到一个匹配 “星期六”,但match.Value是“星期六”(无空格)
基本上我也想获得“周六,周一”“周六,周一”,“周六周一”的匹配,而不是“SatMon”
感谢
(Thu|Fri|Sat)[,\s]\s*(Mon|Tue)
这将使逗号或空格以及任何额外的空间Mon
或Tue
你的版本混为一谈字符类和交替的概念之前。交替,您将选项与|
分开的选项必须位于括号内。我们可以使用(?:)
语法使这些括号不被捕获。
上面我用了一个字符类。要使用交替:
(Thu|Fri|Sat)(?:,|\s)\s*(Mon|Tue)
我已经使用\s
表示空白,但对于你的目的,你可以使用一个字面上的空格替换它们。
请尝试以下 \s?[, ]\s?
要建立在@Jay答案。我会简单地使用一个贪婪的比赛。
(Thu|Fri|Sat)(?:,|\s)+(Mon|Tue)
我必须等待2分钟才能接受,但似乎已经完成了这个技巧谢谢。 Regx和LINQ是我希望我更了解的两项技术。 – Paparazzi 2012-04-26 21:42:48
编辑时删除了我实际使用的答案。 – Paparazzi 2012-04-27 01:47:15
@Blam我添加了一些细节的完整性。 – Jay 2012-04-27 02:37:39