PHP正则表达式

1.常用字符簇 

1.1 .(点)代表任意字符,不含换行

1.2 \w代表[a-zA-Z0-9_],即字母数字下划线

1.3 \W代表\w的补集,即出去字母数字下划线的任意字符,在正则中慎用,因为范围太大了。

1.4 \s表示空白符,包括\n\r\t\v等。

1.5 \S,代表\s的补集,表示非空白符

1.6 \d代表[0-9],即数字

1.7 \D \d的补集,即非数字

2.数量限定符

2.1 *匹配前面子表达式0次或多次

2.2 +匹配前面子表达式1次或多次

2.3 \?匹配前面子表达式0次或1次

2.4 {n}是一个非负整数,匹配确定的n次

2.5 {n,m}最少匹配n次,最多匹配m次,m>=n

2.6 {n,}最少匹配n次,这里n的后面别忘记有个逗号,不然就是匹配确定的n次

3.贪婪与非贪婪模式

3.1 php正则默认是贪婪模式,在满足匹配规则的情况下,尽量多的匹配字符

3.2 在数量(*或+{n})限定符后加上?表示是非贪婪模式,在满足规则的情况下,匹配最少的字符。

4.后向引用

4.1后向引用在正则表达式中小括号中匹配的子表达式可以通过\n(n代表第几个引用的正则中第几个子表达式中匹配的值)来在后面的正则匹配中使用,表示前面小括号中匹配的值

5.模式

5.1 模式修饰符,比如在正则后面加上i表示不区分大小写,即/[a-zA-Z]/i等价于/[a-z]/

5.2 s表示单行模式,即将字符串当做一行来匹配

5.3 u模式传入的匹配参数看成unicode字符编码,可以判断中文,例如/^\x{4e00}-\x{9fa5}$/u

6.预言

6.1 ?= 前瞻零宽度断言正预测,举例/\b\w+(?=ing\b)/每向前匹配一个字符,就向前看(即看还没有匹配的字符)是否是ing加单词的结尾,如果是的话,就把ing前面匹配的字符拿出来,匹配成功

6.2 ?!前瞻零宽度断言负预测,和正预测相反判断不等于,举例/\b\w+(?!ing)\w{3}\b/这里\w{3}的意思是要找单词的最后三个字符不是ing结尾的,如果不是,那就取出字符前面的结果拿出来

6.3 ?<=回顾零宽度断言正预测,这里和6.1的前瞻相反,每匹配前进一个字符,就往回看看匹配的字符是否是预测的子表达式中匹配的值,如果是把后面的字符拿出来,匹配成功。

6.4 ?<!回顾零宽度断言负预测

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值