2016-10-19 20 views
0

2桁の数字^(\d{2})$と一致する正規表現がありますが、これとは逆の処理が必要です。例えば照合するには、次の必要性:正規表現の2桁以外は一致する

HK 
VK 
112 
1H 
V1 

が、以下は

14 
15 
91 
00 
99 

と一致していないだろう、私はちょうど私の正規表現を反転させることができる方法はありますか?私は一致をチェックして結果を逆転させることができますが、それは私の制約の中では不可能であることを知っています。

+3

それは簡単です、あなたの正規表現エンジンは、先読みをサポートしている場合 - '^ * $'(\ D {2} $?!)。 http://stackoverflow.com/a/37988661/3832970(*一部の文字列*セクションに等しい文字列)を参照してください。 –

+0

もしそうでなければ、あなたは悪い時を過ごすでしょう。 | | [^ \ d])$ ' – Siguza

+1

これは、他の文字列の内部にあるかどうかを知ることが重要です。あなたが受け取った現在の提案は、 "文字列の開始"アンカーを持っています、そして、これはその場合にのみ動作します。正規表現では、マッチをどこから行う必要があるのか​​を理解することが常に重要です。 – gview

答えて

-1

あなたはこれを試すことができます。

^([^\d]{2}|\d[^\d]|[^\d]\d|.|.{3}.*)$ 
+0

なぜこれがダウン表示されましたか?それは動作しませんか?先読みをサポートしていないエンジンでは、はるかに簡単なアプローチはありません。 – mm759

関連する問題