1. <?php
  2.  
  3. //正则表达式
  4.  
  5. //1.第一个正则表达式
  6. if("a"=="a"){
  7. echo "equal";
  8. }else{
  9. echo "noequal";
  10. }
  11. echo "<hr>";
  12.  
  13. //第一个参数表示匹配模式,第二个参数匹配的字符串
  14. echo (preg_match('/php/',"php"));
  15. echo (preg_match('/php/',"php222"));
  16. echo (preg_match('/php/',"p2h2p2"));
  17.  
  18. $modle = "/php/";
  19. $string = "php";
  20. if (preg_match($modle, $string)) {
  21. echo "success";
  22. }else{
  23. echo "fail";
  24. };
  25. echo "<hr>";
  26.  
  27. //什么叫做匹配?:按照模式来匹配
  28. //匹配与相等是不同的概念
  29.  
  30. //2.量词+:匹配任何至少包括一个前导字符串(1个或者多个)
  31. // 前导:前面一个字符,+的前导是h
  32. // h+ 的意思是只要要包括1个h
  33. $model = "/ph+p/";
  34. $string = "phhhhhhhp";
  35.  
  36. $model = "/ph+p/";
  37. $string = "phhhgggggggggp";
  38.  
  39. $model = "/ph+p/";
  40. $string = "pp";
  41. echo(preg_match($model, $string))."<hr>";//0
  42.  
  43. // 3.量词*:匹配任包括0个或者多个前导字符串(0个或者多个)
  44. // * 虽然可以是0个,但是前导字符不能更改,更就不匹配了
  45. $model = "/ph*p/";
  46. $string = "php";
  47.  
  48. $model = "/ph*p/";
  49. $string = "pp";
  50.  
  51. $model = "/ph*p/";
  52. $string = "pbbbbp";
  53.  
  54. echo "<hr>";
  55.  
  56. // 3.量词?:匹配任何包含1个或者0个前导字符
  57. $model = "/ph?p/";
  58. $string = "pp";
  59.  
  60. $model = "/ph?p/";
  61. $string = "php";
  62.  
  63. $model = "/ph?p/";
  64. $string = "phhhp";
  65. echo(preg_match($model, $string))."<hr>";//0
  66.  
  67. //4.量词(.)匹配任意一个字符
  68. //n个点匹配n个任意字符
  69. $model = "/p.p/";
  70. $string = "php";
  71.  
  72. $model = "/p..p/";
  73. $string = "phrp";
  74.  
  75. $model = "/p..p/";
  76. $string = "php";
  77.  
  78. $model = "/p..p/";
  79. $string = "phhhp";
  80. echo(preg_match($model, $string))."<hr>";//0
  81.  
  82. //5.(.与*)的配合
  83. //(.*)表示任意前导字符,0个或者多个
  84. $model = "/p.*p/";
  85. $string = "php";
  86.  
  87. $model = "/p.*p/";
  88. $string = "phhhhhhp";
  89.  
  90. $model = "/p.*p/";
  91. $string = "pp";
  92. echo(preg_match($model, $string))."<hr>";//1
  93.  
  94. // 6.量词{x}:表示前导必须是3个
  95. $model = "/ph{3}p/"; // h{3}匹配3个h
  96. $string = "phhhp";
  97.  
  98. $model = "/ph{3}p/";
  99. $string = "php";
  100. echo(preg_match($model, $string))."<hr>";//0
  101.  
  102. //7.量词{x,y}:匹配x-y个前导字符串
  103. $model = "/ph{3,5}p/";
  104. $string = "phhhp";
  105.  
  106. $model = "/ph{3,5}p/";
  107. $string = "phhhhp";
  108.  
  109. $model = "/ph{3,5}p/";
  110. $string = "phhhhhp";
  111. echo(preg_match($model, $string))."<hr>";//1
  112.  
  113. //8.量词{x,}:匹配至少x个前导字符串
  114. $model = "/ph{3,}p/";
  115. $string = "phhhp";
  116.  
  117. $model = "/ph{3,}p/";
  118. $string = "phhp";
  119.  
  120. $model = "/ph{3,}p/";
  121. $string = "phhhhp";
  122. echo(preg_match($model, $string))."<hr>";//1
  123.  
  124. //9.$:匹配字符串的行尾
  125. //$一般加载字符串的尾巴上,表示从尾巴开始匹配(以xxx结尾)
  126. $model = "/php/";
  127. $string = "cccccccccccccccc php ccccccccccc";
  128.  
  129. $model = "/php$/";
  130. $string = "cccccccccccccccc php ccccccccccc";
  131.  
  132. $model = "/php$/";
  133. $string = "cccccccccccccccccccccccccccphp";
  134. echo(preg_match($model, $string))."<hr>";//1
  135.  
  136. //10. ^ 表示从头开始匹配
  137. // 表示 以 xxx 开始
  138. $model = "/^php/";
  139. $string = "cccccccccccccccccccccccccccphp";
  140.  
  141. $model = "/^php/";
  142. $string = "phpcccccccccccccccccccccccccccphp";
  143. echo(preg_match($model, $string));//1
  144.  
  145. //如果^和$一起使用,表示匹配一模一样的,那就使用==即可
  146. $model = "/^php$/";
  147. $string = "phpcccccccccccccccccccccccccccphp";
  148. echo(preg_match($model, $string))."<hr>";//1
  149.  
  150. // 10. | : 匹配字符串的左边或者右边
  151. //条件选择符号
  152. $model = "/php|jsp/";
  153. $string = "php";
  154.  
  155. $model = "/php|jsp/";
  156. $string = "jsp";
  157.  
  158. $model = "/php|jsp/";
  159. $string = "asp";
  160.  
  161. $model = "/php|jsp|asp/";
  162. $string = "asp";
  163. echo(preg_match($model, $string))."<hr>";//1
  164.  
  165. // 11. () : 包围一个字符分组或者
  166. //讲到后面才可以理解
  167.  
  168. ?>

php基础30:正则匹配-量词的更多相关文章

  1. Java基础--常用正则匹配符号(必背,必须背,死都要背)

    1.字母:匹配单个字母 (1)A:表示匹配字母A: (2)\\:匹配转义字符“\”: (3)\t:匹配转义字符“\t”: (4)\n:匹配转义字符“\n”: 2.一组字符:任意匹配里面的一个单个字符: ...

  2. Flask基础(3):session、flash、特殊装饰器、蓝图、路由正则匹配、上下文管理 & flask-session

    Session: Flask 默认将 session 以加密的形式放到了浏览器的 cookie 中 Flask 的 session 就是一个字典,字典有什么方法 session 就有什么方法 flas ...

  3. Python 基础之正则之二 匹配分组,正则相关函数及表达式修饰符

    四.匹配分组   [元字符] 分组符号 a|b   匹配字符a 或 字符b  (如果两个当中有重合部分,把更长的那个放前面) (ab)   匹配括号内的表达式 ,将()作为一个分组 num  引用分组 ...

  4. python_way day18 html-day4, Django路由,(正则匹配页码,包含自开发分页功能), 模板, Model(jDango-ORM) : SQLite,数据库时间字段插入的方法

    python_way day18 html-day4 1.Django-路由系统   - 自开发分页功能 2.模板语言:之母板的使用 3.SQLite:model(jDango-ORM) 数据库时间字 ...

  5. FPGA做正则匹配和网络安全,究竟有多大的优势?

    FPGA做正则匹配和网络安全,究竟有多大的优势? 西电通院专用集成电路课程学习 云导播 网络安全已经被提升为国家战略的高度,高校里面的新增的一级学科,去年9月份,中央网信办.教育部公布了“一流网络安全 ...

  6. python中正则匹配之re模块

    Python中正则表达式 re:re是提供正则表达式匹配操作的模块 一.什么是正则表达式 正则表达式是一个特殊的字符序列,它能帮助你方便的检查一个字符串是否与某个模式匹配,Python 自1.5版本起 ...

  7. day21-Python运维开发基础(单个字符匹配 / 多字符匹配)

    1. 正则表达式(单个字符匹配) # ### 正则表达式 => 单个字符匹配 import re """ lst = re.findall(正则表达式,字符串) & ...

  8. MySQL全面瓦解8:查询的正则匹配

    概述 上一章 查询的过滤条件,我们了解了MySQL可以通过 like % 通配符来进行模糊匹配.同样的,它也支持其他正则表达式的匹配,我们在MySQL中使用 REGEXP 操作符来进行正则表达式匹配. ...

  9. Aho-Corasick算法、多模正则匹配、Snort入门学习

    希望解决的问题 . 在一些高流量.高IO的WAF中,是如何对规则库(POST.GET)中的字符串进行多正则匹配的,是单条轮询执行,还是多模式并发执行 . Snort是怎么组织.匹配高达上千条的正则规则 ...

随机推荐

  1. 安卓第十一天笔记-Intent与inter-filter配置

    安卓第十一天笔记-Intent与inter-filter配置 Intent与inter-filter配置 1.Intent对象简述 Android应用中有包含三种重要组件:Activity,Servi ...

  2. 安卓第六天笔记--ListView

    安卓第六天笔记--ListView 1.AdapteView AdapteView 继承ViewGroup它的本质是容器 AdapterView派生了3个子类: AbsListView AbsSpin ...

  3. Spring(十)Spring任务调度

    一.计划任务 需要定时执行一些计划(定时更新等),这样的计划称之为计划任务 Spring抽象封装了Java提供的Timer与TimerTask类 也可以使用拥有更多任务计划功能的Quartz 二.Ti ...

  4. 深入PHP内核之in_array

    无意中看到一段代码 1.a.php <?php $y="12"; $x = array(); for($j=0;$j<50000;$j++){ $x[]= " ...

  5. 解决 Eclipse 项目有红感叹号的方法

    原因:显示红色感叹号是因为jar包的路径不对 解决: 在项目上右击:Build Path -> Configure Build Paht...(或Propertise->Java Buil ...

  6. Nginx+Lua+Redis 对请求进行限制

    Nginx+Lua+Redis 对请求进行限制 一.概述 需求:所有访问/myapi/**的请求必须是POST请求,而且根据请求参数过滤不符合规则的非法请求(黑名单), 这些请求一律不转发到后端服务器 ...

  7. Linux主流發行版本介紹

    一.简介 而工欲善其事,必先利其器,Linux的世界相當廣大,除了最著名的Ubuntu以外還有不少發行版.然文人相輕,自古皆然,了解不同發行版的優勢不只嘴上攻防用的上,也是學Linux一個有趣的地方! ...

  8. Linux dsh

    一.简介 目前在企业网络中越来越多的出现Linux服务器,而如何方便高效的管理大量的Linux服务器是系统管理员非常关心的一个问题,而dsh正是一个通过命令行有效地管理大量Linux的工具.   二. ...

  9. ASN.1(抽象语法标记)

    一.简介 ASN.1是一种对分布式计算机系统间交换的数据消息进行抽象描述的规范化语言.   二.教程 http://www.epubit.com.cn/book/onlinechapter/14877

  10. libc.so.6被删后导致系统无法使用的原因及解决方法

    记一次升级glibc库发生的错误 今天给glibc库升级,发生了一件让我吓出一声汗的事情,我把动态库中的libc.so.6给删了,瞬间所有的非系统命令都无法使用,使用就报错 当时就吓尿了,生产环境被我 ...