我有2个具有以下值的字符串:
String name = "Scripy";
String username = "adil";
当我使用正则表达式检查这些字符串时,我得到false
值:
if(name.matches("/[a-zA-Zа-яА-ЯёЁ ]+/")){
System.out.println("Name: true");
}else{
System.out.println("Name: false");
}
if(username.matches("/^[A-Za-z][A-Za-z0-9]*(?:_[A-Za-z0-9]+)*$/")){
System.out.println("Username: true");
}else{
System.out.println("Username: false");
}
结果:
I/System.out: Name: false
I/System.out: Userame: false
出什么问题了?
答案 0 :(得分:1)
您不需要/
,请尝试:
[a-zA-Zа-яА-ЯёЁ ]+
答案 1 :(得分:0)
在正则表达式模式中这里不需要反斜杠 工作代码:
if(name.matches("[a-zA-Zа-яА-ЯёЁ ]+")){
System.out.println("Name: true");
}else{
System.out.println("Name: false");
}
if(username.matches("^[A-Za-z][A-Za-z0-9]*(?:_[A-Za-z0-9]+)*$")){
System.out.println("Username: true");
}else{
System.out.println("Username: false");
}
您可以在这里参考https://docs.oracle.com/javase/7/docs/api/java/util/regex/Pattern.html