4

英数字と次の特殊文字を受け入れる正規表現を定義する必要があります: @#$%&*()-_+][';:?.,!

私が思いついた:

string pattern = @"[a-zA-Z0-9@#$%&*+\-_(),+':;?.,![]\s\\/]+$";

しかし、これは機能していないようです。何が足りないのか誰か教えてください。

4

3 に答える 3

10

真ん中は[]エスケープする必要があります*:

\[\]

また、おそらく文字列の先頭を^.


*おそらく]両方ですが、バランスをとるために両方を行うのが好きです.

于 2012-05-17T22:25:29.593 に答える
6

文字クラスを定義するときは、" "、" " およびエスケープ シーケンス自体と]同じように、閉じ括弧をエスケープする必要があります。これは正しく行いました。^-\

string pattern = @"[a-zA-Z0-9@#$%&*+\-_(),+':;?.,![\]\s\\/]+$";
                                    ^              ^   ^
于 2012-05-17T22:27:01.573 に答える
4

これらの文字の一部はエスケープする必要があります (*、+ など)。最も簡単な方法は、それらすべてを単純にエスケープすることです。

string pattern = @"[a-zA-Z0-9\@\#\$\%\&\*\(\)\-\_\+\]\[\'\;\:\?\.\,\!]+$";
于 2012-05-17T22:26:34.600 に答える