2016-04-19 8 views
1

私はJavaでこの正規表現を持っています:\\d[a-zA-z]Java正規表現 "\ d [a-zA-z]?"

文字の後に1文字または0文字しか使用できません。

しかし、たとえば17cや21でも一致させると、一致しません。これは私が使用しているコードです:

if (!(pattern.matches("\\d[a-zA-z]?"))) { 
     Throw error...; 
} 

ありがとうございました!

+0

'pattern'? 'pattern'は入力文字列ですか?また、私は思っています*それは1つまたは0 **文字***に続く**数字**を許可する必要があります。 '\ d'で1桁、1文字しか入力できません(入力ミスがありますが、' [A-Za-z] 'でなければなりません)。 1桁以上を許可するには、 '\ d +' –

答えて

2

17c21は一致しません"\d[a-zA-z]?"です。この式は、1つの数字の後ろに文字が続くものと一致します。

"\d+[a-zA-z]*"は、1つ以上の数字の後に0個以上の文字が一致するようにしてください。

1

文字の後に1文字または0文字しか使用できません。

この正規表現を試してみてください:ここで

[a-zA-Z]+.? 

  • [a-zA-Z]+マッチ少なくとも一つの文字(大文字と小文字)を
  • .?マッチ(改行を除く)任意の文字をゼロまたは1回。
0

可能\ d + [a-zA-Z]?あなたが探しているもの