使用正則表達式判斷手機號碼是否合法

一、正則表達式介紹

正則表達式是一種通用的字符串匹配工具,在各種編程語言中都有廣泛的應用。通過正則表達式,我們可以輕鬆地匹配一個字符串是否符合我們期望的格式。在Java中,使用正則表達式需要使用Java.util.regex包。

在本文中,我們將嘗試使用正則表達式驗證手機號碼是否合法。在正式介紹如何使用正則表達式進行驗證之前,需要先了解一下Java的正則表達式語法。

Java正則表達式語法主要包含三個元素:字符、限定符和分組。通過這三個元素的組合,我們可以構建出各種複雜的正則表達式。

字符主要包括字母、數字和特殊字符等,例如\d表示0-9的數字,\w表示字符或數字等。限定符主要包括量詞、位置和界定符等,例如?表示匹配0個或1個字符,*表示匹配0個或多個字符,+表示匹配1個或多個字符。分組通過小括號的方式表示,例如(a|b|c)表示匹配a或者b或者c。

二、手機號碼正則表達式

現在我們來編寫一個正則表達式,用於匹配正確的手機號碼格式。手機號碼通常由11位數字組成,以1開頭。根據號碼段分布情況,我們可以將手機號碼正則表達式劃分為三個模板:

  • 中國電信號碼格式驗證:133、153、180、181、189
  • 中國聯通號碼格式驗證:130、131、132、155、156、185、186
  • 中國移動號碼格式驗證:134、135、136、137、138、139、147、150、151、152、157、158、159、178、182、183、184、187、188

根據上述規則,我們可以編寫如下的正則表達式:

^(13[0-9]|14[579]|15[0-35-9]|17[0-35-8]|18[0-9])\\d{8}$

這個正則表達式採用了分組的方式,將三個模板分別放在了小括號中,並使用了豎線(|)將它們連接起來。後面的\d{8}用於匹配11位數字。

三、Java代碼實現

接下來,我們將使用Java代碼來實現手機號碼的正則表達式驗證。下面的代碼演示了如何使用Pattern和Matcher類來實現正則表達式匹配:

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

public class Main {
    public static void main(String[] args) {
        String regex = "^(13[0-9]|14[579]|15[0-35-9]|17[0-35-8]|18[0-9])\\d{8}$";
        String phoneNumber = "13812345678";

        Pattern pattern = Pattern.compile(regex);
        Matcher matcher = pattern.matcher(phoneNumber);

        if (matcher.matches()) {
            System.out.println("手機號碼合法");
        } else {
            System.out.println("手機號碼不合法");
        }
    }
}

在這段代碼中,我們首先定義了一個手機號碼正則表達式,然後使用Pattern類的compile()方法將其編譯為一個模式。接下來,我們使用Matcher類的matcher()方法來創建一個匹配器,並使用它的matches()方法進行匹配。最後,根據匹配結果輸出驗證信息。

四、小結

在本文中,我們從正則表達式的介紹開始,逐步展示了如何使用正則表達式來驗證手機號碼的格式,最後通過Java代碼進行了演示。正則表達式是一項非常強大的工具,在編寫各種數據校驗和文本匹配程序時經常使用。熟練掌握正則表達式的語法和用法,有助於提高編程的效率和代碼的可維護性。

原創文章,作者:PFZI,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/150202.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
PFZI的頭像PFZI
上一篇 2024-11-07 09:49
下一篇 2024-11-07 09:49

相關推薦

  • Python正則表達式search()和match()有什麼區別?

    search()和match()都是Python中的正則表達式函數,它們的作用都是在一個字符串中搜索匹配正則表達式的位置,但它們有着不同的使用場景和返回結果。 一、search()…

    編程 2025-04-29
  • MySQL正則表達式替換

    MySQL正則表達式替換是指通過正則表達式對MySQL中的字符串進行替換。在文本處理方面,正則表達式是一種強大的工具,可以方便快捷地進行字符串處理和匹配。在MySQL中,可以使用正…

    編程 2025-04-27
  • 詳解 IP 正則表達式

    一、IP 地址基礎知識 在講解 IP 的正則表達式前,我們先來了解一下 IP 地址的基礎知識。IP 是 Internet Protocol 的縮寫,用於標識網絡中的設備。IP 地址…

    編程 2025-04-24
  • 深入理解grep正則表達式

    一、grep的基本用法 grep命令是Linux系統中最常用的命令之一,它可以在文件中查找特定的文本模式,非常方便。grep命令的基本用法: grep ‘pattern’ file…

    編程 2025-04-24
  • sed正則表達式深度解析

    一、sed正則表達式 sed(stream editor)是一個基於行的文本編輯器,它可以執行基本的文本轉換功能,其中包含正則表達式的匹配和替換功能。在sed中,正則表達式被廣泛應…

    編程 2025-04-23
  • 身份證號碼正則表達式詳解

    一、身份證號碼的基礎結構 身份證號碼是由18個字符組成的,分為前17位和最後一位校驗位。而校驗位的計算方法是經過公式計算得來的,可以確定身份證號碼是否錯誤。其中,前6位是地區碼,接…

    編程 2025-04-23
  • 正整數的正則表達式

    在編程開發過程中,我們經常需要進行一些數據驗證操作,以確保用戶輸入的數據符合一定的格式和規範。而正則表達式就是一個非常強大的工具,可以幫助我們快速、準確地檢查和過濾數據。本文將從多…

    編程 2025-04-23
  • 正則表達式不包含某個字符串

    一、正則表達式基礎 正則表達式是一種用來匹配字符串的工具。它通過定義一個規則來匹配符合該規則的特定文本,這樣就可以對想要匹配的字符串進行過濾或者替換操作。正則表達式中包括了一些特殊…

    編程 2025-04-12
  • 身份證正則表達式詳細闡述

    一、身份證正則表達式 身份證號碼是中國公民的唯一身份標識,其格式是18位純數字或17位數字加1位大寫字母X。身份證正則表達式使用正則表達式來描述此格式,以進行身份證號碼的合法性校驗…

    編程 2025-04-12
  • 深入探究車牌號正則表達式

    一、正則表達式的基本概念 正則表達式是一種非常強大的文本處理工具,通過一系列的字符、符號和特殊字符的組合,可以方便地進行字符串的匹配、查找、替換等操作。正則表達式通常被用於編寫規則…

    編程 2025-04-12

發表回復

登錄後才能評論