正則表達式是一種強大的文本處理工具,其中包括了用於匹配數字的正則表達式。在本篇文章中,我們將會討論數字正則表達式的語法,以及如何使用它們來匹配數字、字符串和其他類型的數據。無論你是需要從文本中提取數字,還是僅僅需要確認字符串是否包含數字,這些技巧都會對你有所幫助。
一、匹配整數
匹配整數是正則表達式中最常見的任務之一。下面是一些用於匹配整數的正則表達式:
//匹配正整數 ^[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-hant/n/137346.html