3

空白、スラッシュ、またはバックスラッシュのない文字列に一致するはずの正規表現を作成しました。問題は、「unterminated set」エラーが発生することです。

私の正規表現:

Regex checkForSpace = new Regex("^[^\\s\\/\\]+$");

バックスラッシュのスニペットを追加する前は、想定どおりに機能していましたが、エラーが発生しました。何が間違っているのか正確にはわかりません。これは、正規表現に関する私の最初の重要な経験です。

アドバイスをいただければ幸いです。

4

2 に答える 2

9

]正規表現で誤って終了をエスケープしています。

これを試して:

                Regex       C# string
White space     \s          "\\s"
Backslash       \\          "\\\\"
Slash           /           "/"
                \s\\/       "\\s\\\\/"
Regex checkForSpace = new Regex("^[^\\s\\\\/]+$");
于 2013-07-02T22:55:38.887 に答える
6

バックスラッシュのエスケープに遭遇しています。正規表現と C# 文字列の両方で必要です。C# がそれを必要としないようにするには、@ 記号を入れます。

のようにしてみてください (文字列の先頭に @ を付けます)

new Regex(@"^[^\s/\\]+$");
于 2013-07-02T22:50:49.350 に答える