Javaは一貫性のない正規表現パターンをどのように処理するのですか?私はこれを試しています:Javaの一貫性のない正規表現文字クラス
Pattern p = Pattern.compile("[a-d[m-p][^d][m]]");
Matcher m = p.matcher("d");
System.out.println(m.matches());
私はそれが本当に受けています。しかし、私の文字クラスには[^ d]が含まれているので、正規表現によれば一致するはずはありません。しかしdもパターン(a-d)に含まれているので、一致する結果は肯定的です。では、パターンの解析はどのように行われますか?それが例外を投げた場合、それは良いだろうか?
なぜ矛盾しますか?それはJavaのためにかなりokです。 –
パターンに文字 "d"を含めて除外したので、私は矛盾していると言った。 – randombee
'-verbose'オプションを指定した"スマート "コンパイラが余分に[m]オプションを指定するかもしれませんが、[^ d]は効果がありません。" && [^ d] "を意味しましたか?** FindBugs **のようないくつかのツールがこのような欠陥をマークしています。 –