PHP中內含兩種庫的正則表達式,這里我用的是perl的。
正則表達式的組成
主要由“定界符+模式+定界符”組成
模式又由原子(必須的)、元字符、模式修正符,組成。
原子:
1.正常的字符,0-9、a-zA-Z。
2.特殊字符,就是非正常字符的都是,用的時候記得加上反斜杠\。
3.打印字符,\n換行 \r回車 \t制表。
4.通用字符,
\d : [0-9]
\D : [^0-9]
\s : 空字符
\S : 非空字符
\w : [0-9a-zA-Z_]
\W : [^0-9a-zA-Z_]
5.自制類原子[]
元字符:
他在模式中存在一種特殊的含義
*:重復前面的原子0次1次或多次。
+:前面的原子至少重復1次。
?:前面的原子重復0次or1次。
{n}:前面的原子重復n次。
{n,}:前面的原子至少重復n次。
{n,m}:前面的原子重復n到m次。
|:模式選擇符,例:/lnmp|lamp/i;
.:代表任意一個字符,除了換行外。
^:開頭。
$:結尾。
[^]:除了里面的之外。
():大原子。
模式修正符
i:不區分大小寫。
s:.也可以匹配任意字符。
m:可以將一行字符當成多行處理。
后向引用
就是大原子的內容是可以被引用的,省的你在寫一次。
引用的話呢,就是寫\{這里換成從左往右數的第某個大原子}
具體使用:
$pattern = '/\d{4}([\W])\d{2}\1\d{2}/';
函數
preg_match();
preg_match_all();
preg_grep();