0
public class samppatmatch {

    private boolean validatingpswwithpattern(String password){
        String math="[a-zA-z0-9]+[(]+(?:[^\\]+|\\.)*";
        Pattern pswNamePtrn =Pattern.compile(math);
        boolean flag=false;

         Matcher mtch = pswNamePtrn.matcher(password);
         if(mtch.matches()){
             flag= true;
         }

        return flag;
    }


    public static void main(String args[]){
        samppatmatch obj=new samppatmatch();
        boolean b=obj.validatingpswwithpattern("");
         System.out.println(b);
    }
}

上記のコードでこのタイプの例外が発生しています。

java.util.regex.PatternSyntaxException: Unclosed character class near index 28
4

2 に答える 2

0

この式[^\\]は、閉じ括弧がエスケープされているため、正規表現コンパイラをクラッシュさせます (@KevinEsche はコメントで指摘しました) ]。を含む文字クラスを作成する場合は\、文字クラスが Java 文字列で次のようになるように、それもエスケープする必要があります。[^\\\\]

于 2015-10-12T06:09:17.407 に答える