当前位置: 首页 > 后端技术 > PHP

PHP正则表达式核心技术详解第10节【补充知识】模式修饰符s和m

时间:2023-03-29 20:41:17 PHP

作者:极客小军,专注web技术的80后,不用跟聪明人斗,你只要需要和那些懒惰的人战斗,你一定会超过他们中的大多数!再次加上下面两个特殊的修饰符s和m==m把字符串当成多行==多行的意思是把带\n的字符串当成换行,然后简单的匹配正则表达式换句话说,就是取一个双引号字符串,根据\n拆分成独立的行,匹配每行中\n换行前的内容==总结==:m修饰符的意思是修饰^和The$的作用,因为^和$本身匹配的是一个大字符串,而m是将一个大字符串拆分成每一行进行匹配,匹配每行换行符前的内容==注意:string如果是单引号,对\n无效,字符串必须是双引号才能解析下例中的\n==代码:$string="h11111\nh22222\nh33333";$pattern='/^h\d+$/im';preg_match_all($pattern,$string,$result);show($result);==s将字符串视为单行,换行符将被视为普通字符==s如果这个修饰符是秒et,模式中的(点)元字符匹配所有字符,包括换行符。没有这个修饰符,点不匹配换行符。该修饰符等同于perl中的/s修饰符。否定字符类(如1)始终匹配换行符,与此修饰符的设置无关。代码示例如下//比较1$string="anthisiseventzonegoodangood";$pattern='/^(an)/m';preg_match_all($pattern,$string,$arr);show($arr);//Contrast2$string="anthisiseventzonegoodangood";$pattern='/^(an).+/s';preg_match_all($pattern,$string,$arr2);show($arr2);//Contrast3$string="anthisiseventzonegoodangood";$pattern='/^(an).+/m';preg_match_all($pattern,$string,$arr3);show($arr3);如果我的博客对您有帮助,如果您喜欢我的博客内容,请“点赞”、“评论”、“收藏”好吗?您的支持是我前进的动力。?