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: незавершенная класс символов рядом с индексом 28
java.util.regex.PatternSyntaxException: Unclosed character class near index 28
вам нужно избежать '(' as '\\ (' – SomeJavaGuy
В дополнении' [^ \\] 'не компилируется, потому что вы избегаете' '' и класс char никогда не закрывается. – SomeJavaGuy
@KevinEsche Собственно, согласно [regex101] (https://regex101.com/r/iP4zT5/1), вы не _need_, чтобы избежать paranthesis '()' внутри группы символов. Исключение также не относится к этой парантезе, а скорее к второй проблеме, которую вы отметили (29-й символ - это закрывающая paranthesis ') 'прямо перед концом регулярного выражения). – mezzodrinker