Java中Match方法的字符串限制

时间:2019-02-27 09:26:54

标签: java

我希望我的String像“ 09DD-DDD-DD DD”,我应该如何使用Java中的matchs方法对此进行编码? 这是我的代码的一部分,但不起作用:

public void setPhone(String p) {
    if (p.charAt(0) == '0' && p.charAt(1) == '9' && p.matches("//d{4}-//d{3}-//d{2} //d{2}")){
        this.phone = p;}
    else System.out.println("phone number must be started with 09 and DDDD-DDD-DD DD");

}

3 个答案:

答案 0 :(得分:1)

从您所说的来看,应该是这样:"09\\d{2}-\\d{3}-\\d{2} \\d{2}"

答案 1 :(得分:0)

像这样使用正则表达式:

regex101.com

^09\d{2}-\d{3}-\d{2} \d{2}$

答案 2 :(得分:0)

我看到您的问题是接受电话号码。因此它的正则表达式应为:

09[0-9]{2}-[0-9]{3}-[0-9]{2} [0-9]{2}

您的代码应类似于:

if (p.matches("09[0-9]{2}-[0-9]{3}-[0-9]{2} [0-9]{2}"){
        phone = p;
}else { 
    System.out.println("phone number must be started with 09 and DDDD-DDD-DD DD");
}