繁体   English   中英

正则表达式电话号码不得以555开头

[英]Regular Expressions Phone number must not start with 555

import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class MatchPhoneNumbers {
    public static void main(String[] args) {

        String sPhoneNumber = "5568889999";
        // String sPhoneNumber = "605-88899991";
        // String sPhoneNumber = "605-888999A";

        Pattern pattern = Pattern.compile("^(?![5][5][5]).*$&\\d([2-9]{9})");
        // Pattern pattern = Pattern.compile("^[^555]\\d{7}|\\d([2-9]{9})");

        // ^[^0-9]+$
        Matcher matcher = pattern.matcher(sPhoneNumber);

        if (matcher.matches()) {
            System.out.println("Phone Number Valid");
        } else {
            System.out.println("Phone Number must be in the form XXXXXXXXXX");
        }
    }
}

我希望返回的电话号码在我输入556时有效,并且仅在前3位为555时才返回false。我也不想让前一位为0或1。如何实现此目的?

要匹配您的数字格式,您可以使用:

^(?![01]|555)\\d{10}$

在Java中:

^(?![01]|555)\\\\d{10}$

那将匹配:

  • ^字符串的开头
  • (?!断言以下内容的否定超前行为不是
    • [01]匹配0或1
    • | 要么
    • 555字面匹配
  • )关闭负面的前瞻
  • \\d{10}匹配10位数字
  • $字符串的结尾

演示Java

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM