說明
.
匹配除換行符意外的任意字符
\w
匹配字母或數(shù)字或下劃線
\s
匹配任意的空白符
\d
匹配數(shù)字
\b
匹配單詞的開始或結束
^
匹配字符串的開始
$
匹配字符串的結束
[x]
匹配x字符,如匹配字符串中的 a、b 和 c 字符
\W
\w的反義,即匹配任意非字母尚揣,數(shù)字,下劃線和漢字的字符
\S
\s的反義谆沃,即匹配任意非空白符的字符
\D
\d的反義锯岖,即匹配任意非數(shù)字的字符
\B
\b的反義介袜,即不是單詞開頭或結束的位置
[^x]
匹配除了 x 意外的任意字符,如 [^abc] 匹配除了 abc 這幾個字母之外的任意字符
重復
說明
*
重復零次或更多次
+
重復 1 次或更多次
?
重復零次或 1 次
{n}
重復 n 次
{n,}
重復 n 次或更多次
{n,m}
重復 n 到 m 次
貪婪與懶惰
正則表達式默認的情況下出吹,會在滿足匹配條件下盡可能的匹配更多內容遇伞。如a.*b,用他來匹配 aabab 捶牢,它會匹配整個 aabab 鸠珠,而不會只匹配到 aab 為止,這就是貪婪匹配叫确。
與貪婪匹配對應的是,在滿足匹配條件的情況下盡可能的匹配更少的內容芍锦,這就是懶惰匹配竹勉。
上述例子對應的懶惰匹配規(guī)則為:
a.*?b
如果用該表達式去匹配aabab ,那么就會得到 aab 和 ab 這樣兩個匹配結果娄琉。
常用的懶惰限定符如下:
懶惰限定符
說明
*?
重復任意次次乓,但盡可能少重復
+?
重復 1 次或更多次,但盡可能少重復
??
重復 0 次或 1 次孽水,但盡可能少重復
{n,}
重復 n 次以上票腰,但盡可能少重復
{n,m}
重復 n 到 m 次,但盡可能少重復
模式修正符
模式修正符是標記在整個正則表達式之外的女气,可以看著是對正則表達式的一些補充說明杏慰。
常用的模式修正符如下:
模式修正符
說明
i
模式中的字符將同時匹配大小寫字母
m
字符串視為多行
s
將字符串視為單行,換行符作為普通字符
x
將模式中的空白忽略
e
preg_replace() 函數(shù)在替換字符串中對逆向引用作正常的替換炼鞠,將其作為 PHP 代碼求值缘滥,并用其結果來替換所搜索的字符串。
A
強制僅從目標字符串的開頭開始匹配
D
模式中的 $ 元字符僅匹配目標字符串的結尾
U
匹配最近的字符串
u
模式字符串被當成 UTF-8
1