14

[] 文字セット式で単一のスペースを表す問題に直面しています。私はこのようなものを使用することになりました

([a-zA-Z0-9]|\x20)+

これはあまりエレガントではないと思います

更新:正規表現の何が問題なのかがわかりました。私はうまくいかなかったこのようなものを使いました

[A-Za-z0-9/.,':!?$%()- ]+

しかし、このように9の後にスペースを移動すると

[A-Za-z0-9 /.,':!?$%()-]+

そして、それはうまくいきます。オンライン正規表現テスターRegExrでこれを試しています。

Update2 :問題は、-内部の正規表現が範囲を表すために使用されているため、[]その前後にプレーンな文字とは異なる意味があることがわかりました

4

2 に答える 2

22
[a-zA-Z0-9 ]

文字クラスにスペースを追加します。あなたはすでにそれを知っていると思います.文字列に単一のスペースだけがあることを確認したいと思います. その場合、追加の先読みが必要です。

^(?!.*  )[a-zA-Z0-9 ]*$

英数字とスペースを含む文字列に一致しますが、単一のスペースのみです。

于 2013-01-16T08:21:32.090 に答える
9

スペースをそのまま使用できます

質問の正規表現構造の場合:

 ([a-zA-Z0-9]| )+

実際には:

[a-zA-Z0-9 ]+
于 2013-01-16T08:20:09.260 に答える