1

私はこの同様の質問で見つけた次の正規表現を使用しています: /[^\s"]+|"[^"]*"/g

文字列が二重引用符で囲まれている場合を除いて、文字列をスペースで分割したい。引用符は結果に含める必要があります。

これは私のC#コードです:

MatchCollection conditions = Regex.Matches(strCondition, @"/[^\s""]+|""[^""]*""/g"); 

条件.カウントは常にゼロです! http://refiddle.com/で正規表現をテストすると、うまくいきます!

入力例:

"0" MATCHES NOCASE "Den Bosch"  OR "0" MATCHES NOCASE "'s Hertogenbosch"

"0" MATCHES "1" AND "1" MATCHES "2" AND "2" MATCHES "3" AND "3" MATCHES "4" AND "4" MATCHES "5"

私は何を間違っていますか?私は数時間を無駄にし、もう手がかりがありません。

これ:(?<=")\w[\w\s]*(?=")|\w+|"[\w\s]*"私の場合は結果が得られますが、一重引用符で失敗するため、目的の結果が得られません。

4

1 に答える 1

4

/.NET の正規表現は区切り記号を使用しないため、次のようになります。

MatchCollection conditions = Regex.Matches(strCondition, @"[^\s""]+|""[^""]*"""); 
于 2012-09-18T12:57:38.660 に答える