簡體   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