正则

正则
1.定界符
~!@#$%^&*(){}<> / #

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 匹配任意一个除了空白字符以外的任意一个字符

\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 匹配字符串必须以某个字符结束

\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>

posted @ 2018-11-20 15:47  付俊捷  阅读(332)  评论(1编辑  收藏  举报