2011-12-16 18 views
3

私はこの文字列を検証するのに^[S-s][0-9]{4}$を使用していますが、正しく動作しません。私の文字列は、Letter S(大文字または小文字)の形で、4桁の数字が続く必要があります。 S1234。私がw1234と入力した場合、それは正しいと検証されますが、a1234のような文字を入力した場合、それは検証されません。ありがとう。正規表現は特定の文字で始まります

+0

これは逆の音です。 '[S-s]'は '' '[STUVWXYZ \ [\\\]^_' abcdefghijklmnopqrs] '' 'に相当します。私は 'a'または' W'にマッチすると期待しますが、 'A'や' w'にはマッチしません。 –

+0

メモのおかげで、今私はそれがsの上の文字と一致していた理由を理解する。 – user282807

答えて

10

ダッシュを取り除く必要があります。[...]表す文字範囲内

^[Ss][0-9]{4}$ 

ダッシュ。したがって、正規表現内のS-sは、「SとSの間のUnicode文字表のすべての文字」を意味し、それらの2つが隣接していないため、一揃いの一致する文字で終わります。

+0

^[S-Zs-z]に変更してください。あなたの質問が編集されたと思います。 – DefyGravity

+0

^[Ss] [0-9] {4} $は私のために働く。私はちょうど最初の手紙がS(小さいか大きい)であることを望んでいた。 – user282807

0

[S-s]は、大文字のSと小文字の間のすべての文字の範囲を意味します。代わりに^[Ss][0-9]{4}$を試してください。または、より良いのは、大文字小文字を区別しない修飾子(多くの言語で/i)を使用した^s\d{4}$です。

関連する問題