<?php
$A = 'ABCD ab EFGAHjanm';
$Pkey = preg_replace( '/a/iU','<strong style="color: red">\\0</strong>',$A );
echo $Pkey;
?>为什么输出后是: 2个A和2个a 都是红色,而不是只有一个A是红色啊, 这个贪婪模式没有发挥作用啊
$A = 'ABCD ab EFGAHjanm';
$Pkey = preg_replace( '/a/iU','<strong style="color: red">\\0</strong>',$A );
echo $Pkey;
?>为什么输出后是: 2个A和2个a 都是红色,而不是只有一个A是红色啊, 这个贪婪模式没有发挥作用啊
echo '<br>';
echo $Pkey = preg_replace( '/a.+a/i','<strong style="color: red">\\0</strong>',$A );
贪婪模式:
要匹配以字母"a"开头字母"b"结尾的字符串,但是需要匹配的字符串在"a"后面含有很多个"b",比如"a bbbbbbbbbbbbbbbbb",那正则表达式是会匹配第一个"b"还是最后一个"b"呢?如果你使用了贪婪模式,那么会匹配到最后一个"b",反之只是匹配到第一个"b"。
使用贪婪模式的表达式如下:
/a.+?b/
/a.+b/U
不使用贪婪模式的如下:
/a.+b/
让第一个A变色可以这样$A = 'ABCD ab EFGAHjanm';
$Pkey = preg_replace( '/a/iU','<strong style="color: red">\\0</strong>',$A, 1);
echo $Pkey;