PHP正则表达式模式后面 /U,/s 参数

http://php.net/manual/zh/reference.pcre.pattern.modifiers.php

 

U (PCRE_UNGREEDY) 这个修饰符逆转了量词的"贪婪"模式。 使量词默认为非贪婪的,通过量词后紧跟? 的方式可以使其成为贪婪的。这和 perl 是不兼容的。 它同样可以使用 模式内修饰符设置 (?U)进行设置, 或者在量词后以问号标记其非贪婪(比如.*?)。


例:
1、$str = 'aabcaabab';
      $regx = '/a.*b/U';
      preg_match_all($regx, $str, $matches);
      匹配结果:Array ( [0] => Array ( [0] => aab [1] => aab [2] => ab ) )
      注:该结果和正则表达式 “/a.*?/” 匹配结果一致
2、$str = 'aabcaabab';
      $regx = '/a.*b/';
      preg_match_all($regx, $str, $matches);
      匹配结果:Array ( [0] => Array ( [0] => aabcaabab ) )

s (PCRE_DOTALL) 如果设置了这个修饰符,模式中的点号元字符匹配所有字符,包含换行符。如果没有这个 修饰符,点号不匹配换行符。这个修饰符等同于 perl 中的/s修饰符。 一个取反字符类比如 [^a] 总是匹配换行符,而不依赖于这个修饰符的设置。

$str="<div class="info">
abc
</div>"
$regx = '/<div[^>]*?class="info">.*?[a-z]+.*?</div>/is';
  preg_match_all($regx, $str, $matches);
  print_r($matches);
  匹配结果:Array ( [0] => Array ( [0] =>
 abc
 ) )

注:正则中不加s模式,则匹配结果为空



     注:正则中不加s模式,则匹配结果为空


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值