2017-01-10 1 views
2

javaのregexは、そのリストを除くすべての国に一致します。 は例えば、スペインを除くすべての国が、私が試した:java正規表現の文字列は、リスト以外の2文字の国と一致します

[A-Z]{2}&&^(ES) 

  • PTtrue
  • ESがあるべきである必要がありtrue
  • DEあるべき場所false

[A-Z]{2}&&^(ES|PT|DE) 

のリストを除くの

すべての国これはゼロ幅の負の先読みを使用して行うことができ感謝

答えて

4

最終的な正規表現が^(?!ES|PT|DE)[A-Z]{2}$になりますが、2資本を望むことを示しますES,PTおよびDEを除く文字。または、単に(?!ES|PT|DE)[A-Z]{2}@WiktorStribiżewのようにmatches(String regex)メソッドを使用する場合。

+1

これは正しいです! ES | PT | DEの周りの2番目の括弧はあまり役に立たないので、 '(?!DE | ES | PT)[AZ] {2}':p – baddger964

+3

Aは '^'と ' $ 'アンカーを使用して3つ以上の長いシーケンスをマッチさせないようにする:https://regex101.com/r/kc79K1/1 –

+2

パターンの先頭と末尾に'# 'と' $ ' '。 –

関連する問題