數字正則表達式教程

正則表達式是一種強大的文本處理工具,其中包括了用於匹配數字的正則表達式。在本篇文章中,我們將會討論數字正則表達式的語法,以及如何使用它們來匹配數字、字符串和其他類型的數據。無論你是需要從文本中提取數字,還是僅僅需要確認字符串是否包含數字,這些技巧都會對你有所幫助。

一、匹配整數

匹配整數是正則表達式中最常見的任務之一。下面是一些用於匹配整數的正則表達式:

//匹配正整數
^[1-9]\d*$

//匹配負整數
^-[1-9]\d*$

//匹配整數
^-?[1-9]\d*$

上述正則表達式中的^符號表示從字符串的開始位置開始匹配,$符號表示到字符串結尾位置結束。其中[1-9]表示數字可以是1到9的任意一個數字,\d表示數字可以是0-9中的任意一個數字,*表示允許匹配零個或多個字符。其中,^-?表示負號可以出現0次或1次。

二、匹配浮點數

匹配浮點數可能會相對更為複雜一些。下面是一些用於匹配浮點數的正則表達式:

//匹配浮點數,格式一:1.23, 0.12, .23
^([1-9]\d*|0)(\.\d+)?$ 

//匹配浮點數,格式二:-1.23, -0.12, -.23
^-([1-9]\d*|0)(\.\d+)?$

其中,\.\d+表示小數點後面至少跟了一位數字。同時這些正則表達式會捕獲到整數部分和小數部分,所以你可以在匹配到的結果中進行進一步的處理。

三、匹配小數或整數範圍

有時,你可能需要限制匹配的數值必須落在某個特定的範圍之內。以下是一些示例:

//匹配1-100的整數
^(0?[1-9]|[1-9]\d|100)$ 

//匹配0-1之間的浮點數
^0\.\d*[1-9]+(\d+)?$
^1(\.0+)?$

//匹配1-10之間的浮點數,可以精確到小數點後兩位
^(?!0)\d{1,2}(.\d{1,2})?$ 
^10(.(00?)?)?$

需要注意的特別是,匹配1-10之間的浮點數的正則表達式里使用了負向預測的(?!),用於排除了0這個數值。

四、匹配手機號碼

如果你需要匹配手機號碼,以下是一些用於匹配手機號碼及其格式的正則表達式:

//匹配中國大陸的手機號碼,格式類似於 13800138000
^1[3456789]\d{9}$

//匹配港澳台等地手機號碼
^(00852|\+852)?[569]\d{7}$|^1[3456789]\d{9}$|^([0|6|9]\d{7,8})$|^([2-5]\d{7})$

//匹配美國的手機號碼,格式類似於 1-541-754-3010
^1-[2-9]\d{2}-\d{3}-\d{4}$

五、匹配銀行卡號

銀行卡號的格式一般都是固定的,下面是一些用於匹配各種格式銀行卡號的正則表達式:

//匹配16位銀行卡號,格式類似於 6228480402564890018
^[4-6]\d{15}$

//匹配10至18位各類銀行卡號
^(620521)(\d{13}|\d{15,16})$
^(621201|621202|622666|622675|622676|622677|622678|622679|622680|622681| 622682|622684|622688|622689)(\d{12,19})$
^(622630|622632|622633|622635|622636|622637|622638|622648|622650|622658| 622660|622678|622679|622680)(\d{10,17})$
^(622690|622691|622692|622696|622698)(\d{10,19})$
^(622660|622661|622662|622663|622664|622665|622666|622667|622668|622669| 622670|622671|622672|622673|622674|622675|622676|622677|622678|622679|622680|622681|622682| 622683|622684|622685|622686|622687|622688|622689)(\d{9,20})$
^(622171|622172|622173|622174|622175|622176|622177|622178|622179)(\d{13,16})$
^(622126|622127|622128|622129|622130|622131|622132|622133|622134|622135)(\d{11,18})$
^(622256|622257|622258|622259|622260|622261|985262)(\d{10,18})$
^(622901|622902|622922|622923|622906|622916|622909|622908|622926|622927| 622928|622933|622939|622938|622937|622939|622940|622947|623062|622946|622942|622949| 622952|523036|622955|622939)(\d{13,16})$
^(621462|621453|623005|623006|621467|621428|623062|623260|623261)(\d{12,19})$
^(621095|621096)([\d]{10,17})$
^(62\d{17})(\d{3})?$

需要注意的是,這些正則表達式中並不會驗證銀行卡的真實性,需要結合其他驗證方式使用。

到此,本篇數字正則表達式教程結束。以上這些正則表達式可以幫助你快速匹配數字、電話、銀行卡等各種格式的數據。如果你需要更多幫助,請參考正則表達式相關的文檔或教程。

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

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
VNFQ的頭像VNFQ
上一篇 2024-10-04 00:17
下一篇 2024-10-04 00:17

相關推薦

  • MQTT使用教程

    MQTT是一種輕量級的消息傳輸協議,適用於物聯網領域中的設備與雲端、設備與設備之間的數據傳輸。本文將介紹使用MQTT實現設備與雲端數據傳輸的方法和注意事項。 一、準備工作 在使用M…

    編程 2025-04-29
  • Python3.6.5下載安裝教程

    Python是一種面向對象、解釋型計算機程序語言。它是一門動態語言,因為它不會對程序員提前聲明變量類型,而是在變量第一次賦值時自動識別該變量的類型。 Python3.6.5是Pyt…

    編程 2025-04-29
  • Python循環符合要求數字求和

    這篇文章將詳細介紹如何通過Python循環符合要求數字求和。如果你想用Python求和但又不想手動輸入數字,那麼本文將是一個不錯的選擇。 一、使用while循環實現求和 sum =…

    編程 2025-04-29
  • Deepin系統分區設置教程

    本教程將會詳細介紹Deepin系統如何進行分區設置,分享多種方式讓您了解如何規劃您的硬盤。 一、分區的基本知識 在進行Deepin系統分區設置之前,我們需要了解一些基本分區概念。 …

    編程 2025-04-29
  • 寫代碼新手教程

    本文將從語言選擇、學習方法、編碼規範以及常見問題解答等多個方面,為編程新手提供實用、簡明的教程。 一、語言選擇 作為編程新手,選擇一門編程語言是很關鍵的一步。以下是幾個有代表性的編…

    編程 2025-04-29
  • Python正則表達式search()和match()有什麼區別?

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

    編程 2025-04-29
  • Qt雷達探測教程

    本文主要介紹如何使用Qt開發雷達探測程序,並展示一個簡單的雷達探測示例。 一、環境準備 在開始本教程之前,需要確保你的開發環境已經安裝Qt和Qt Creator。如果沒有安裝,可以…

    編程 2025-04-29
  • Python基本數字類型

    本文將介紹Python中基本數字類型,包括整型、布爾型、浮點型、複數型,並提供相應的代碼示例以便讀者更好的理解。 一、整型 整型即整數類型,Python中的整型沒有大小限制,所以可…

    編程 2025-04-29
  • 猿編程python免費全套教程400集

    想要學習Python編程嗎?猿編程python免費全套教程400集是一個不錯的選擇!下面我們來詳細了解一下這個教程。 一、課程內容 猿編程python免費全套教程400集包含了從P…

    編程 2025-04-29
  • Python數字求和怎麼寫

    在Python中實現數字求和非常簡單,下面將從多個方面對Python數字求和的實現方法做詳細的闡述。 一、直接使用「+」符號進行求和 a = 10 b = 20 c = a + b…

    編程 2025-04-29

發表回復

登錄後才能評論