纵有疾风起
人生不言弃

PHP正则表达式常用的5种模式修正符

<?php
/*模式修正符:1.作用是扩展正则功能,或者解释正则
 2.单个模式修正符就有一个单独的功能,也可以几个组合使用
*/

$str=’this is a Test’;
//模式修正符i:正则匹配不区分大小写
$pat=’/test/i’;
if(preg_match($pat,$str,$arr)){
echo “正则 $pat 匹配 $str 成功!<br>”;
print_r($arr);
echo “<br>”;
}
else{
echo “匹配不成功!<br>”;
}

$str=’hello world
this is my job
you are my world!’;
/*模式修正符m:用来匹配换行字符串中的字符
注意:1.如果目标字符串$str中没有换行符,或者匹配模式中没有出现起始字符^或结束字符$,则m不起作用;
 2.字符串$str换行之后必须顶格写,否则会导致匹配不到;
*/

$pat=’/^you.*\!$/m’;
if(preg_match($pat,$str,$arr)){
echo “正则 $pat 匹配 $str 成功!<br>”;
print_r($arr);
echo “<br>”;
}
else{
echo “匹配不成功!<br>”;
}

//模式修正符s:如果设置了这个修正符,模式中的.可以匹配换行符(默认是不能匹配换行符的);
$str=’I <b>am</b> a g<b>ood</b> man!’;
//正则中代替换行符的必须是.*,一个.不能匹配
$pat=”/a.*g/s”;
//模式修正符x:忽略正则中输入的空白,但如果目标字符串中再出现空白将无法匹配
$pat1=”/goodman/”;
//模式修正符U:去除贪婪模式,与.*后面加上?是一样的效果,但二者同时使用将失去作用
$pat2=”/\<b\>.*\<\/b\>/U”;
if(preg_match($pat2,$str,$arr)){
echo “正则 $pat2 匹配 $str 成功!<br>”;
print_r($arr);
echo “<br>”;
}
else{
echo “匹配不成功!<br>”;
}
?>

原文链接:https://blog.csdn.net/living_ren/article/details/75674977

本站声明:网站内容来源于网络,如有侵权,请联系我们,我们将及时处理。

未经允许不得转载:起风网 » PHP正则表达式常用的5种模式修正符
分享到: 生成海报

评论 抢沙发

评论前必须登录!

立即登录