0

テキストボックスの内容を英数字、スラッシュ (/)、ハッシュ (#)、左右の括弧 (())、ピリオド (.)、アポストロフィ (')、引用符 (")、ハイフン (-)、およびスペース。

ハッシュと引用符に問題があり、他の制限は機能していますが、これらの文字のいずれかを挿入すると評価が失敗し、エラー メッセージが表示されます。私はこれらの文字を逐語的に使わずにエスケープしようとしましたが、これが最後の試みでした。

@"[ a-zA-ZÀ-ÿ/().\'-""#]"

これらについて何か考えはありますか?ありがとうございました

4

1 に答える 1

3

正規表現言語は、文字クラス内のピリオドと括弧が実際に文字を参照していて、文字クラスの外に現れるときに通常行うパターンを参照していないことを理解するのに十分スマートです。

文字クラス内では、スラッシュ ( \) とハイフン ( -) をエスケープする必要がありますが、それだけです。

@"[ a-zA-ZÀ-ÿ/().\\'\-""#]"

ハイフンを文字クラスの最後に移動すると、それをエスケープする必要さえありません。

@"[ a-zA-ZÀ-ÿ/().\\'""#-]"

そしてもちろん、これはまだ 1 つの文字にしか一致しません。文字列全体がこれらの文字のみで構成されていることを確認したい場合は、文字クラスの後に開始 ( ^) および終了 ( $) アンカーと量指定子 (*または) を使用する必要があります。+

最終的なパターンは次のようになるはずです。

@"^[ a-zA-ZÀ-ÿ/().\\'""#-]*$"
于 2013-04-24T18:40:36.220 に答える