天天看點

正規表達式必知必會筆記測試正規表達式網址幾種反義量詞懶惰限定符運算符優先級字元簇正規表達式-前後查找 #

測試正規表達式網址

http://rubular.com/

元字元:

“^”:比對行或者字元串的起始位置

**” "∗∗: 會比對行或字元串的結尾

“\b”:不會消耗任何字元隻比對一個位置,常用于比對單詞邊界 “\bis\b”

“\d”: 比對數字

“\w”:比對字母,數字,下劃線.

“\s”:比對空格

“[abc]”: 字元組 比對包含括号内元素的字元

“x|y” 比對 x 或 y

“[xyz]” 比對所包含的任意一個字元

“[a-z]” 字元範圍。

“\num” 比對 num,其中 num 是一個正整數。

空白元字元:

“\t” 比對一個制表符

\f 換頁符

\r 回車

\v 垂直制表符

\n 換行符

組合

\r\n “回車加換行”

比對十六進制或十八進制:

十六:

\x0A 對應ASCII字元10 等價于\n

\011 對應ASCII字元9 等價于\t

*POSIX字元類

幾種反義

“\W” 比對任意不是字母,數字,下劃線 的字元

“\S” 比對任意不是空白符的字元

“\D” 比對任意非數字的字元

“\B” 比對不是單詞開頭或結束的位置

“[^abc]” 比對除了abc以外的任意字元

量詞

“*” 重複零次或更多

“+” 重複一次或更多次 比對電子郵箱([\w.][email protected][\w.]+.\w+)

“?” 重複零次或一次

“{n}” 重複n次

“{n,m}” 重複n到m次

“{n,}” 重複n次或更多次

懶惰限定符

“*?” 重複任意次,但盡可能少重複

“[量詞]? 重複XX次,但盡可能少重複

運算符優先級

\ (轉義符) >

(), (?:), (?=), [] >

*, +, ?, {n}, {n,}, {n,m}(限定符) >

^, $, \任何元字元、任何字元 >

|

字元簇

[a-z] //比對所有的小寫字母

[A-Z] //比對所有的大寫字母

[a-zA-Z] //比對所有的字母

[0-9] //比對所有的數字

[0-9.-] //比對所有的數字,句号和減号

[ \f\r\t\n] //比對所有的白字元

正規表達式-前後查找 #

向前查找:

文本 \http://www.baidu.com

正規表達式 .+(?=:)

比對結果 \http://www.baidu.com

向後查找

文本 d23.90 d12.32 d12.34 33.33

正規表達式 (?<=d)[0-9.]+

比對結果 **

** 33.33

注意:向前查找模式的長度是可變的,它們可以包含.、、+之類的元字元;而向後查找模式隻能是固定長度,不能包含.、、+之類的元字元。

這句話的意思是值:(?<=t+)這種就是非法的!,而(?=t+)是合法的。

(?!) 負向前查找

文本 the book cost and the phone cost 1000 2d

正規表達式\d+(?!d)

比對結果the book cost and the phone cost 1000 2d

(?<!d)負向後查找

文本 the d2 wow 30

正規表達式 (?<!d)\d+

比對結果 the d2 wow 30

向前查找向後查找混合使用

文本(title)ben hah wowo(/title)

正規表達式 (?<=(title)).*(?=(/title))

比對結果 (title)ben hah wowo(/title)

繼續閱讀