我的問題是[中,\ 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