正規表示式詳細講解

2021-10-08 10:15:12 字數 2412 閱讀 9057

什麼是正規表示式?

正規表示式通常被用來檢索、替換那些符合某個規則的文字,使用一系列特殊字元模式,來表示某一類字串。

元字元

元字元含義\

將下乙個字元標記符、或乙個向後引用、或乙個八進位制轉義符

^匹配輸入字行首

$匹配輸入行尾

*匹配前面的子表示式任意次

+匹配前面的子表示式一次或多次(大於等於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 表示除了...