什麼是正規表示式?
正規表示式通常被用來檢索、替換那些符合某個規則的文字,使用一系列特殊字元模式,來表示某一類字串。
元字元
元字元含義\
將下乙個字元標記符、或乙個向後引用、或乙個八進位制轉義符
^匹配輸入字行首
$匹配輸入行尾
*匹配前面的子表示式任意次
+匹配前面的子表示式一次或多次(大於等於1次)
?匹配前面的子表示式零次或一次
n是乙個非負整數。匹配確定的n次
n是乙個非負整數。至少匹配n次
m和n均為非負整數,其中n<=m。最少匹配n次且最多匹配m次
.匹配除「\n」和"\r"之外的任何單個字元
(pattern)
匹配pattern並獲取這一匹配
(?:pattern)
匹配pattern但不獲取匹配結果
(?=pattern)
非獲取匹配,正向肯定預查,在任何匹配pattern的字串開始處匹配查詢字串
(?!pattern)
非獲取匹配,正向否定預查,在任何不匹配pattern的字串開始處匹配查詢字串
x/y匹配x或y
[xyz]
字元集合
[^xyz]
負值字元集合
[a-z]
字元範圍
[^a-z]
負值字元範圍
\b匹配乙個單詞的邊界,也就是指單詞和空格間的位置
\b匹配非單詞邊界
\cx匹配由x指明的控制字元
\d匹配乙個數字字元
\d匹配乙個非數字字元
\f匹配乙個換頁符
\n匹配乙個換行符
\r匹配乙個回車符
\s匹配任何不可見字元
\s匹配任何可見字元
\t匹配乙個製表符
\v匹配乙個垂直製表符
\w匹配包括下劃線的任何單詞字元
\w匹配任何非單詞字元
\xn匹配n,其中n為十六進製制轉義值
\num
匹配num,其中num是乙個正整數
\n標識乙個八進位制轉義值或乙個向後引用
\nm標識乙個八進位制轉義值或乙個向後引用
\nml
如果n為八進位制數字(0-7),且m和l均為八進位制數字(0-7),則匹配八進位制轉義值nml
\un匹配n,其中n是乙個用四個十六進製制數字表示的unicode字元
常用總結含義
表示式數字
[0-9]
n位的數字
^\d$
至少n位的數字
^\d$
m-n位的數字
^\d$
非零開頭的最多帶兩位小數的數字
^([1-9][0-9]*)+(.[0-9])?$
帶1-2位小數的正數或負數
^(-)?\d+(.\d)?$
非零的負整數
^-[1-9]\d*$
非正整數
^-[1-9]\d*
非負浮點數
^\d+(.\d+)?$
浮點數^(-?\d+)(.\d+)?$
漢字[\u4e00-\u9fa5]
英文本母
[a-za-z]
長度為3-20的所有字元
^.$由數字、26個英文本母或者下劃線組成的字串
^\w+$
匹配除 \n 以外的任何字元
.*全形符號
[\uff00-\uffff]
半形符號
[\u0000-\u00ff]
不能以_開頭
(?!_)
不能以_結尾
(?!.*?_$)
email位址
^\w+([-+.]\w+)@\w+([-.]\w+).\w+([-.]\w+)*$
網域名稱[a-za-z0-9][-a-za-z0-9](/.[a-za-z0-9][-a-za-z0-9])+/.?
手機號碼
^(13[0-9]
**號碼
^((\d-)
身份證號
^\d日期格式
^\d-\d-\d
一年的12個月
^(0?[1-9]
乙個月的31天
^((0?[1-9])
[1-9][0-9]
[1-9]\d(?!\d)
ip位址
d+.d+.d+.d+
查詢css屬性
^\s*[a-za-z\-]+\s*[:]\s[a-za-z0-9\s.#]+[;]
匹配首尾空格
(^s*)
不是很全還可能有錯,但是盡力了並且很用心。
詳細講解 正規表示式
正規表示式,又稱規則表示式。英語 regular expression,在 中常簡寫為regex regexp或re 電腦科學的乙個概念。正規表示式通常被用來檢索 替換那些符合某個模式 規則 的文字。許多程式語言都支援利用正規表示式進行字串操作。例如,在perl中就內建了乙個功能強大的正規表示式引擎...
正規表示式 詳細講解平衡組
要讀懂這篇文章的精髓,你最好要有一點正則匹配原理的基礎。比如 匹配文字內容 asp163 稍懂正規表示式的人都知道可以匹配,但是你知道他的匹配過程嗎?如果你不太清楚,那麼下面的內容,對你來說可能不太適合,或許,看的太吃力且無法領悟平衡組的用法。因此,我建議你先了解正規表示式nfa引擎的匹配原理。想要...
正規表示式詳細介紹
單個表示 1 d 數字 2 d 非數字 注 大小寫就是取反的意思 3 w 任意乙個字母或數字或下劃線 4 s 空白符 換行 製表符 空格 5 任意字元 除了換行符 自定義字元集合 表示匹配內的任意乙個字元,是乙個或運算,比如 123 就表示是數字1或數字2或數字3 表示非運算,比如 123 表示除了...