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