PHP正则解析多重循环模板示例

发布时间:2022-04-30 发布网站:脚本宝典
脚本宝典收集整理的这篇文章主要介绍了PHP正则解析多重循环模板示例脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。

本文实例讲述了PHP正则解析多重循环模板。分享给大家供大家参考,具体如下:

<PRe class="brush:PHP;"> $str = "客户您好,为您推荐以下项目:(crm{项目2:项目名称} (crm{项目3:项目名称}crm) crm)以及(crm{项目1:项目名称}crm)"; @R_502_1563@ = '(crm'; //循环开始标记 $end = 'crm)'; //循环结束标记 //循环标记,需要转移的符号,前面需要加入转义符 '\' $need_escaPE = array('^','$','(',')','.','[',']','|','*','?','+','/','{','}'); foreach($need_escape as $val) { if(strpos(@R_502_1563@,$val) !== FALSE)//存在需要转义的符号 { $escape = '\\'.$val; @R_502_1563@ = str_replace($val,$escape,@R_502_1563@); } if(strpos($end,$val) !== FALSE)//存在需要转义的符号 { $escape = '\\'.$val; $end = str_replace($val,$end); } } /*---------------------------------- * 正则解析出【没有子循环】的【循环】 * 【没有子循环】:不包含循环开始标记 * 【循环】:被循环标记包含(开始标记、结束标记) * ---------------------------------*/ //$pattern = '/\(crm((?!\(crm).)+crm\)/U'; $pattern = '/'.@R_502_1563@.'((?!'.@R_502_1563@.').)+'.$end.'/U'; preg_match_all($pattern,$str,$matches); echo "
";
print_r($matches);
echo "
";

脚本宝典总结

以上是脚本宝典为你收集整理的PHP正则解析多重循环模板示例全部内容,希望文章能够帮你解决PHP正则解析多重循环模板示例所遇到的问题。

如果觉得脚本宝典网站内容还不错,欢迎将脚本宝典推荐好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。