正則
1.定界符
~!@#$%^&*(){}<> / #php
2.原子
是組成正則的最小單位,原子就是匹配一個字符
2.1 普通字符
數字/字母下劃線 0~9 A~Z a~z _
2.2 特殊字符
使用特殊字符,須要轉義才能正常使用
'' "" / . * + ? | () & ^ \
須要匹配\ 必須使用四根\來轉義
2.3 非打印字符
\f -- 分頁符
\r -- 回車符
\n -- 換行符
\t -- 製表符
\v -- 垂直製表符
2.4 通用字符
\d 匹配任意一個十進制數字[0~9]
\D 匹配任意一個十進制數字之外的字符緩存
\s 匹配任意一個空白字符 [空格 tab \f\r\n\t\v]
\S 匹配任意一個除了空白字符之外的任意一個字符app
\w 匹配任意一個數字/字母/下劃線[0-9 a-z A-Z _]
\W 匹配任意一個數字/字母/下劃線之外的一個字符
(打死我,大寫取反)
2.5 原子表
用中括號[]來表示自定義的原子,,在以上方案沒法知足時使用
[abc] 匹配原子表中的任意一個字符
[^abc] 匹配除了原子表中的任意一個字符.
3.元字符
用來修飾其前面的原子出現的次數或者位置
!(元字符不能單獨出現)
3.1 限定符
* 匹配其前面的 原子出現 0次 1次 屢次(不限次數,任意屢次)
+ 匹配其前面的 原子出現 1次 屢次(至少一次)
? 匹配其前面的 原子出現 0次 1次(至多一次)
{n} 匹配其前面的 原子出現 正好n次
{n,} 匹配其前面的 原子出現 至少n次
{n,m} 匹配其前面的 原子出現 至少n次,至多m次
3.2 邊界限制
^ 或 \A 匹配字符串必須以某個字符開始
$ 或 \Z 匹配字符串必須以某個字符結束blog
\b 單詞邊界
\B 除了單詞邊界之外的部分
3.3 句號
. 匹配任何一個字符,除了換行符(\n)
3.4 模式選擇符
| 在多個模式之間,選擇匹配一個匹配到的那個模式
3.5 模式單元
() 把括號中的內容看成一個總體,看成一個大原子
() 子模式
3.6 後向引用 (最大99個)
\1 \2 \3
\\1 \\2 \\3
用()標記的原子就是一個子模式,獨立的單元,
全部子模式匹配到的內容會被臨時存儲在臨時緩存區的地方,以備後用
4.模式修正符
必須放在定界符的外邊,並且是右邊
i 不區分大小寫
m 視爲多行
s 視爲一行
x 模式中的空白忽略不記(除非已經被轉義)
U 非貪婪模式(默認就是貪婪模式)
(我沒事就下個大遊戲)
(i miss yoU)遊戲
PS.關於模式匹配的優先級
1. \
2. () (?:) (?=), []
3. * + ? {n} {n,} {n,m}
4. ^ $ \b \B \A \Z
5.|
*/字符串
<div class="clearfix goodsBox">
<a href="goods.php?id=24">
<img src="images/111.jpg" alt="Smartisan T2">
</a><br>
<a href="goods.php?id=25">
<img src="images/222.jpg" alt="apple 6s">
</a><br>
<a href="goods.php?id=26">
<img src="images/333.jpg" alt="小米note3">
</a><br>
<a href="goods.php?id=27">
<img src="images/444.jpg" alt="堅果手機">
</a><br>
<a href="goods.php?id=28">
<img src="images/555.jpg" alt="魅藍手機">
</a><br>
<a href="goods.php?id=29">
<img src="images/666.jpg" alt="oppo r7">
</a><br>
</div>class