php 高洛峰 正则,PHP正则表达式的基本概念

1.正则表达式是用于匹配的字符串

2.使用PCRE库

3.四部分组成:定界符、原子、元字符、模式修正符

$str="aaa1aa2aa333aaaa";

$reg="/\d/";

echo preg_replace($reg,"#",$str);

print_r preg_split($reg,$str);

if(preg_match($reg,$str,$arr)){

print_r($arr);

}else{

echo "没匹配上";

}

4.原子

要点

a.打印字符(键盘打出的字符)/非打印字符(回车等)

b.打印字符除了字母数字下划线等,其他最好加转义

$ren="/\n/";//匹配回车

c.通用:\d任意一个数字,\D任意一个非数字,\w任意一个字(a-z A-Z 0-9 _),\W任意一个非字,\s空白(回车TAB空格),\S非空白

d.自定义原子表:[12348][^a-zA-Z]

e.(.)匹配所有

5.元字符

a.*:修饰前面的原子可以出现任意次

b.+:修饰前面的原子至少出现一次

c.?:修饰前面的原子可以出现0或1次

d.{m}:修饰前面的原子只能出现m次

e.{m,n}:修饰前面的原子出现次数2-5闭区间内

f.{m,}:修饰前面的原子至少出现m次

g.|:两边的原子只要出现一个即可,优先级最低

$reg="/abc|efg/";//abc或efg,而非c或e,因为优先级最低

h.^或\A:原子必须以某字符开始,写在正则表达式的最前面

i.$或\Z:原子必须以某字符结束,写在正则表达式的最后面

j.\b:匹配单词边界;\B:匹配除单词边界以外的部分(所谓边界即空白,单词哪边有空白用b,否则B)

k.():

(1)改变优先级

(2)将小原子变成大原子,如下:

$reg="/(abc)*/";//abc可以出现多次,而非只有c

(3)子模式:整个表达式是大模式,()内是独立子模式,只想使用括号前两个作用,可以(?:)

(4)反向引用:\1引用第一个子模式

6.模式修正符

a.写在定界符右边,可以组合使用,修正正则表达式的解释或扩充了功能

(1)i:不区分大小写

(2)m:视为多行,如:每行开始可匹配^,结尾$

(3)s:.可以匹配换行符(.默认不匹配换行符)

(4)x:忽略正则表达式中空白,待匹配字符串不能空白了

(5)e:

(6)U:取消贪婪模式,由于与其他语言不兼容,建议不用,而使用.*?或.+?取消贪婪

7.正则表达式的编写(具体详见下一篇:《正则表达式与字符串操作函数》)

a.正则表达式是一种算法/语言

b.列需求,一条条满足

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值