PHP正则表达式

正则表达式,用于处理字符串,补充字符处理函数的不足。

基础1. 定界符

定界符没有严格要求,可以是“/”,“@”,“#” 或其它,看个人喜好。定界符是成对出现的,正则表达式前后各一个。

例:$status = preg_match('/a/','abc')  //在字符串abc中,是否包含字符a

注:$status = preg_match('@a@','abc')

      $status = preg_match('#a#','abc') 

      得到的结果相同

基础2. 元字符

\d,匹配任一数字 【0-9】

例:$status = preg_match('/\d/','abc121') //在字符串abc121中,是否包含数字

\D,匹配除了数字之外的字符 【^0-9】

例:$status = preg_match('/\D/','abc121') //在字符串abc121中,是否包含除数字以外的字符

\w,匹配字符串中是否含有a-zA-Z0-9_  【a-zA-Z0-9_】

例:$status = preg_match('/\w/','abc121') //在字符串abc121中,是否含有字符a-zA-Z0-9_

\W,匹配字符串中是否含有除了a-zA-Z0-9_  【^a-zA-Z0-9_】

例:$status = preg_match('/\W/','abc121#') //在字符串abc121#中,是否含有除了a-zA-Z0-9_的字符

\s,匹配换行、分页、空格等字符 【任意空白】

例:$status = preg_match('/\s/','abc 12 1#') //在字符串abc 12 1#中,是否含有空白字符

\S,匹配除空白之外的字符 【^任意空白】

例:$status = preg_match('/\S/','abc 12 1#') //在字符串abc 12 1#中,是否含有空白字符

\n,换行符,\t,制表符

基础3. 原子表【abc】

原子表中的字符互相之间无顺序或组合关系,每个字符是独立的

例:$status = preg_match('/[abc]/','b2a1c') //在字符串b2a1c中,是否含有字符a或b或c

      $status = preg_match('/[6-9]/','b2a1c') //在字符串b2a1c中,是否含有6-9之间的数字

基础4. 原子组 (abc)

原子组中的字符是整体,完全匹配,包括顺序、字符个数、数值 

$status = preg_match('/(ab)/','ab') //在字符串ab中,是否含有字符ab

基础5. 重复匹配

“.”: 点,匹配 除换行符外任意字符

“*”:星,匹配 0个或多个字符

“+”:加,匹配 1个或多个字符

“?”:问号,匹配 0个或1个字符

例:$status = preg_match('/^.*$/','') //匹配0个到多个字符,返回1

例:$status = preg_match('/^.+$/','') //匹配1个到多个字符,返回0

例:$status = preg_match('/^.+$/','a') //匹配1个到多个字符,返回1

例:$status = preg_match('/^\d?$/','1') //匹配0个或1个字符,返回1

基础6. 禁止贪婪匹配

例:$str = '<h1>我爱你</h1><h1>哈尔滨</h1>';

//$preg = '/<h1>(.+)<\/h1>/'; //贪婪匹配,会得到第一个h1开始,最后一个/h1结尾的所有结果,不是我们想要的

$preg = '/<h1>(.+?)<\/h1>/';  //禁止贪婪匹配,每次仅匹配一个h1开始,/h1结尾的结果

$preg = '/<h1>.*<\/h1>/U'; //禁止贪婪匹配的另一种方式

preg_match_all($preg,$str,$matches); //使用preg_match_all方法,返回所有匹配到的结果(数组)

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

宫孙小兔

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值