PHP正则表达式

$regex = <<<__REGEX__
/^(?P<user>
"[\w!#$%&'*+\/=?^`{|}~.@()[\]\\;:,<>-]+"  (?# quoted username)
| (?!\.)[\w!#$%&'*+\/=?^`{|}~.-]+(?<!\.)  (?# non-quoted username)
) @ (?P<host>
(?:(?!-)[\w-]+(?<!-)\.)+[\w-]+(?<!-)  (?# host)
| \[(\d{1,3}\.){3}\d{1,3}\]  (?# host ip address)
)$/x

__REGEX__;

如例解释:

1.分组和反向引用

(?P<user>)表示括号内正则表达式命名为user,在反向引用时可以使用(?P=user)

在反向引用时可以使用(?:)来避免捕获数据,但是数据反向索引位置不变

2.正向预查和反向预查

(?=),(?<=),(?!),(?<!)分别表示元素前必须紧接,元素后必须紧接,元素前不能紧接,元素后不能紧接的内容

3.注释(?# 注释内容)

该标记表示括号内的内容为注释

4.惰性匹配

可使用?修饰+,*,?等限定符,将限定符变成惰性类型(尽早结束匹配)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值