2012-04-26 14 views
1

私の問題がある[、\ sは|、| \ sを]マッチします「 『』、」などとだから私は試合を得ることはありません正規表現カンマまたはカンマスペースまたはスペース

余分なスペースを残します」 「と:

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

に一致させることによって(木|金は|土)[、\ sは|、| \ sを] 私は試合を取得 "土、月、土を" しかしmatch.Valueがオンになっています"Sat"(スペースなし)

基本的に私は "Sat、Mon" "Sat、Mon" "SatMon"ではなく "SatMon"でマッチしたいと思っています

おかげ

答えて

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

これはあなたのバージョンは文字クラスと交代の概念をconflatingたMonまたはTue

前にコンマまたはスペースおよび任意の追加のスペースができるようになります。 |でオプションを区切る交替は、かっこ内になければなりません。 (?:)構文を使用して、これらのカッコを非キャプチャにすることができます。

上記の文字クラスを使用しました。私は空白を示すために\sを使用しているが、あなたの目的のためにリテラルスペースに置き換えることができ

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

:交替を使用します。

+0

私は受け入れるのに2分待たなければならないが、それはトリッキーな感謝をしたようだ。 RegxとLINQは、私がもっとよく知っていたがっている2つのテクノロジーです。 – Paparazzi

+0

あなたが編集したとき、私は実際に使用された答えを削除しました。 – Paparazzi

+0

@Blam完全性のためにいくつかの詳細を追加しました。 – Jay

2

@Jayの答えに構築するには、次の \s?[, ]\s?

0

を試してみてください。私は単に貪欲な試合を使用します。

(Thu|Fri|Sat)(?:,|\s)+(Mon|Tue) 
関連する問題