測試正規表達式網址
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)