.net 正则表达式逗号或逗号空格或空格

.net 正则表达式逗号或逗号空格或空格,.net,regex,.net,Regex,我的问题是[,\s |,|\s]将匹配“,”as“,”并留出额外的空间 所以我没有得到一个匹配的“星期六,星期一”与: 通过在(星期四、星期五、星期六)[、\s、\s]进行匹配 我在“Sat”上找到了匹配项,但匹配项。值在“Sat”上(没有空格) 基本上,我也想在“Sat,Mon”“Sat,Mon”“Sat-Mon”上找到匹配项,但不是“SatMon” 谢谢 这将允许逗号或空格以及Mon或Tue 您的版本将角色类和交替的概念混为一谈。可选选项,即用|分隔选项必须位于括号内。我们可以使用(?:)语

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

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

通过在(星期四、星期五、星期六)[、\s、\s]进行匹配 我在“Sat”上找到了匹配项,但匹配项。值在“Sat”上(没有空格)

基本上,我也想在“Sat,Mon”“Sat,Mon”“Sat-Mon”上找到匹配项,但不是“SatMon”

谢谢

这将允许逗号或空格以及
Mon
Tue

您的版本将角色类和交替的概念混为一谈。可选选项,即用
|
分隔选项必须位于括号内。我们可以使用
(?:)
语法使这些括号不被捕获

上面,我使用了一个字符类。要使用交替:

(Thu|Fri|Sat)(?:,|\s)\s*(Mon|Tue)
我使用了
\s
来表示空白,但出于您的目的,您可以将其替换为文字空格。

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

以@Jay answer为基础。我会简单地使用贪婪的匹配

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

我必须等2分钟才能接受,但这似乎已经成功了,谢谢。Regx和LINQ是两种我希望知道得更好的技术。@Blam为了完整性,我补充了一些细节。
(Thu|Fri|Sat)(?:,|\s)\s*(Mon|Tue)
(Thu|Fri|Sat)(?:,|\s)+(Mon|Tue)