为什么正则表达式不能正常工作?

时间:2018-10-03 15:09:29

标签: java android regex string

我有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

出什么问题了?

2 个答案:

答案 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