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

转载于:https://www.cnblogs.com/whoamme/archive/2012/08/23/2652152.html

正则解析多重循环模板相关推荐

  1. php正则循环,PHP正则解析多重循环模板示例

    本文实例讲述了PHP正则解析多重循环模板.分享给大家供大家参考,具体如下: $str = "客户您好,为您推荐以下项目:(crm{项目2:项目名称} (crm{项目3:项目名称}crm) c ...

  2. ThinkPHP 3.2.2 在 volist 多重循环嵌套中使用 if 判断标签

    今天在 ThinkPHP 3.2.2 的试图模板中使用多重循环,用来把相应类别下对应的文章都依次循环出来,但是无论如何只能循环出类别,类别下的文章无法循环出,( 错误 ) 代码如下: <voli ...

  3. 数据解析学习笔记(正则解析、bs4解析、xpath解析)

    聚焦爬虫:爬取页面中指定的页面内容. - 编码流程: - 指定url - 发起请求 - 获取响应数据 - 数据解析 - 持久化存储 数据解析分类: 正则 bs4 xpath(***) 数据解析原理概述 ...

  4. 【Vue.js源码解析 三】-- 模板编译和组件化

    前言 笔记来源:拉勾教育 大前端高薪训练营 阅读建议:建议通过左侧导航栏进行阅读 模板编译 模板编译的主要目的是将模板 (template) 转换为渲染函数 (render) <div> ...

  5. go语言打印日期_go语言基础:流程控制(4)-多重循环跳转控制

    1.6 多重循环控制 1.6.1 概念解析 1)多重循环就是指将一个循环嵌套在另一个循环体内,就形成了嵌套循环.在外边的for循环称之为外层for循环,在里面的for循环称之为内层for循环.2)实质 ...

  6. break怎么跳出多层循环C语言,C/C++ 跳出多重循环方法

    C/C++ 跳出多重循环方法 c语言的break语句只能跳出离它最近的一层循环,但是我们有时候需要跳出多层循环,以下有几种跳出多重循环的方法: 1. 使用goto for (int i = 0; i ...

  7. python 循环中报错 继续运行_python中列表删除和多重循环退出

    在学习python的时候,会有一些梗非常不适应,在此列举列表删除和多重循环退出的例子: 列表删除里面的坑 比如我们有一个列表里面有很多相同的值,假如:nums=[1,6,6,3,6,2,10,2,10 ...

  8. JAVA基础——最简单的多重循环程序

    Java 循环语句之多重循环 循环体中包含循环语句的结构称为多重循环.三种循环语句可以自身嵌套,也可以相互嵌套,最常见的就是二重循环.在二重循环中,外层循环每执行一次,内层循环要执行一圈. 如下所示: ...

  9. Python中断多重循环的几种思路

    转自: https://www.cnblogs.com/cuijianxin/p/6611751.html I. 跳出单循环 不管是什么编程语言,都有可能会有跳出循环的需求,比如枚举时,找到一个满足条 ...

最新文章

  1. 搬运机器人举杯贺所需的条件_机器人调试工程师的工作是怎样的
  2. 基础数据类型之集合和深浅copy,还有一些数据类型补充
  3. Hinton构思下一代神经网络:属于无监督对比学习
  4. rmi远程代码执行漏洞_【漏洞通告】Apache Solr远程代码执行漏洞
  5. Linux下sync命令
  6. SPT20 协议_协议离婚协议书模板锦集6篇
  7. 程序员过关斩将--请不要误会redis 6.0 的多线程
  8. P3750-[六省联考2017]分手是祝愿【期望dp】
  9. Windows-server-2008-R2安装Oracle-11g-R2-dataguard
  10. sun.java2d.fontpath,java起用默认浏览器
  11. 【博客美化】02.公告栏显示个性化时间
  12. 资料管理工具VSGoogle?
  13. linux 安装与卸载JDK
  14. Mysql,姓名按笔画排序
  15. [转载]Delta Lake、Iceberg 和 Hudi 三大开源数据湖不知道如何选?那是因为你没看这篇文章
  16. FlashFXP,怎么使用flashfxp
  17. android app启动图片 加动画效果,Android Studio开发APP启动程序时开屏简单动画效果快速有效解决方案...
  18. 软工实践 - 第八次作业
  19. php tcpdf修改pdf内容,php-使用TCPDF将空间写入PDF文件
  20. 传奇开服架设要具备什么条件

热门文章

  1. bzoj 1115: [POI2009]石子游戏Kam(博弈)
  2. 猜年龄 蓝桥 填空题2013省赛
  3. git原理和常用操作
  4. xilinx sdk用alt+?进行自动补全
  5. dsu on tree入门
  6. Android Studio使用JDBC远程连接mysql的注意事项(附示例)
  7. shell脚本中定义路径变量出现的BUG
  8. 采样干扰十大滤波算法程序大全
  9. enableEventValidation是干什么的?
  10. asp.net简单的投票系统代码 转载牛腩兄弟的