題注:正則表達式也稱為規則表達式或字符串規則表達式,此文記錄正則表達式的一些基本用法,適合正則入門使用。
-
基本規則
示例
英文文檔中查找單詞 hi
正則: \bhi\b
\b代表空格,隔離him,history等單詞
三位區號8位數字的電話號
正則: 0\d\d-\d\d\d\d\d\d\d\d 簡化: 0\d{2}-\d{8}
-
常用元字符
^ 匹配字符串的開始
$ 匹配字符串的結束
. 匹配除換行符外的所有字符
\d 匹配數字
\w 匹配字符或數字或下劃線或漢字
\s 匹配任意的空白符
\b 匹配單詞的開始或結束
-
匹配類型 POSIX和PEAL
POSIX:
[:upper:] 匹配所有的大寫字母
[:lower:] 匹配所有的小寫字母
[:alpha:] 匹配所有的字母
[:alnum:] 匹配所有的數字和字母
[:digit:] 匹配所有的數字
[:xdigit:] 匹配所有的16進制字符,等價于[0-9A-Fa-f]
[:punct:] 匹配所有的標點符號,等價于[.,'''?!;:]
PERL:
\n 換行符
\r 回車符
\t 制表符
\d 任一十進制數字
\s 任一空白字符
\w 任一“字”可見的字符
匹配QQ號 5-12位
表達式: ^\d{5,12}$
-
字符轉義
轉義字符
比如 匹配\ 表達式:\
類似 \. \* \+等等
-
常用限定符
*** 匹配0次或多次
? 匹配0次或1次
匹配1次或多次
{n} 匹配n次
{n,} 匹配n次或更多次
{n,m}匹配n到m次
-
字符范圍
[aeiou] 匹配任意一個元音字母
[.?!] 匹配標點符號
所以[0-9] 等同 \d
[a-z0-9A-Z_] 等同 \w
-
反義
有定義的元字符大寫,即為反義,字符集前面加上^ 也為反義
\W 匹配任意不是字母、數字、下劃線或漢字的字符
\D 匹配任意不是數字的字符
\S 匹配任意不是空白符的字符
\B 匹配不是單詞開始或結束的字符
[^X] 匹配任一不是X的字符
[^aeiou] 匹配任一不是元音字母的字符
-
并列
用 | 表示或者,合并為一組使用
用 ()表示是一個字表達式
匹配座機號
0\d{2}-\d{8}|0\d{3}-\d{7}
匹配Ip地址
^(\d[1,2]|1\d\d|2[0-4]\d|25[0-5]\.){3}((\d[1,2]|1\d\d|2[0-4]\d|25[0-5])$