<?php

    //正则表达式

    //1.第一个正则表达式
    if("a"=="a"){
        echo "equal";
    }else{
        echo "noequal";
    }
    echo "<hr>";

    //第一个参数表示匹配模式,第二个参数匹配的字符串
    echo (preg_match('/php/',"php"));
    echo (preg_match('/php/',"php222"));
    echo (preg_match('/php/',"p2h2p2"));

    $modle = "/php/";
    $string = "php";
    if (preg_match($modle, $string)) {
        echo "success";
    }else{
        echo "fail";
    };
    echo "<hr>";

    //什么叫做匹配?:按照模式来匹配
    //匹配与相等是不同的概念

    //2.量词+:匹配任何至少包括一个前导字符串(1个或者多个)
    // 前导:前面一个字符,+的前导是h
    // h+ 的意思是只要要包括1个h
    $model = "/ph+p/";
    $string = "phhhhhhhp";

    $model = "/ph+p/";
    $string = "phhhgggggggggp";

    $model = "/ph+p/";
    $string = "pp";
    echo(preg_match($model, $string))."<hr>";//0

    // 3.量词*:匹配任包括0个或者多个前导字符串(0个或者多个)
    // * 虽然可以是0个,但是前导字符不能更改,更就不匹配了
    $model = "/ph*p/";
    $string = "php";

    $model = "/ph*p/";
    $string = "pp";

    $model = "/ph*p/";
    $string = "pbbbbp";

    echo "<hr>";

    // 3.量词?:匹配任何包含1个或者0个前导字符
    $model = "/ph?p/";
    $string = "pp";

    $model = "/ph?p/";
    $string = "php";

    $model = "/ph?p/";
    $string = "phhhp";
    echo(preg_match($model, $string))."<hr>";//0

    //4.量词(.)匹配任意一个字符
    //n个点匹配n个任意字符
    $model = "/p.p/";
    $string = "php";

    $model = "/p..p/";
    $string = "phrp";

    $model = "/p..p/";
    $string = "php";

    $model = "/p..p/";
    $string = "phhhp";
    echo(preg_match($model, $string))."<hr>";//0

    //5.(.与*)的配合
    //(.*)表示任意前导字符,0个或者多个
    $model = "/p.*p/";
    $string = "php";

    $model = "/p.*p/";
    $string = "phhhhhhp";

    $model = "/p.*p/";
    $string = "pp";
    echo(preg_match($model, $string))."<hr>";//1

    // 6.量词{x}:表示前导必须是3个
    $model = "/ph{3}p/"; // h{3}匹配3个h
    $string = "phhhp";

    $model = "/ph{3}p/";
    $string = "php";
    echo(preg_match($model, $string))."<hr>";//0

    //7.量词{x,y}:匹配x-y个前导字符串
    $model = "/ph{3,5}p/";
    $string = "phhhp";

    $model = "/ph{3,5}p/";
    $string = "phhhhp";

    $model = "/ph{3,5}p/";
    $string = "phhhhhp";
    echo(preg_match($model, $string))."<hr>";//1

    //8.量词{x,}:匹配至少x个前导字符串
    $model = "/ph{3,}p/";
    $string = "phhhp";

    $model = "/ph{3,}p/";
    $string = "phhp";

    $model = "/ph{3,}p/";
    $string = "phhhhp";
    echo(preg_match($model, $string))."<hr>";//1

    //9.$:匹配字符串的行尾
    //$一般加载字符串的尾巴上,表示从尾巴开始匹配(以xxx结尾)
    $model = "/php/";
    $string = "cccccccccccccccc php ccccccccccc";

    $model = "/php$/";
    $string = "cccccccccccccccc php ccccccccccc";

    $model = "/php$/";
    $string = "cccccccccccccccccccccccccccphp";
    echo(preg_match($model, $string))."<hr>";//1

    //10. ^ 表示从头开始匹配
    // 表示 以 xxx 开始
    $model = "/^php/";
    $string = "cccccccccccccccccccccccccccphp";

    $model = "/^php/";
    $string = "phpcccccccccccccccccccccccccccphp";
    echo(preg_match($model, $string));//1

    //如果^和$一起使用,表示匹配一模一样的,那就使用==即可
    $model = "/^php$/";
    $string = "phpcccccccccccccccccccccccccccphp";
    echo(preg_match($model, $string))."<hr>";//1

    // 10. | : 匹配字符串的左边或者右边
    //条件选择符号
    $model = "/php|jsp/";
    $string = "php";

    $model = "/php|jsp/";
    $string = "jsp";

    $model = "/php|jsp/";
    $string = "asp";

    $model = "/php|jsp|asp/";
    $string = "asp";
    echo(preg_match($model, $string))."<hr>";//1

    // 11. () : 包围一个字符分组或者
    //讲到后面才可以理解

?>

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. Python学习三---序列、列表、元组

    一.序列 1.1.序列概念 pythn中最基本的数据结构是序列(sequence). 序列中每个元素被分配一个序号-元素索引,第一个索引是0,第二个是1,以此类推.类似JAVA中数组和集合中的下标. ...

  2. CSS 包含选择器(九)

    一.包含选择器 包含选择器中前后两部分之间以空格隔开,根据左侧选择符指定的祖先元素,然后在该元素下寻找匹配右侧的选择侧符的下级元素 定义包含选择器时,必须保证在HTML结构中第一个对象能够包含第二个对 ...

  3. iOS 杂笔-21(self.name = “object” 和 _name =”object” 有什么不同?)

    iOS 杂笔-21(self.name = "object" 和 _name ="object" 有什么不同?) 问题如题,这是考察对属性与变量的了解而已. s ...

  4. ios开发随笔第一篇-button,label按钮的一些属性的使用

    我用的是纯代码方式,喜欢用storyboard开发的其实也很爽了; 首先谈谈button,ios中新建button这个对象一般接触的都明白,UIButton *button名=[ UIButton a ...

  5. IOS学习资源收集--关于动画的代码学习资源总汇(很棒的动画效果哦)

    目录大纲: 1.很棒的iOS加载动画. github网址:https://github.com/NghiaTranUIT/FeSpinner 游老师的译文blog:http://www.cnblogs ...

  6. javascript元素绑定事件

    js元素绑定事件   想给一个元素绑定一个方法之后,在绑定一个方法而且不被覆盖 window.onload = function () { alert('a'); } window.onlaod=fu ...

  7. spring中的 classpath* 存在可移植性问题

    classpath* 的可移植性问题,许多人都应该遇到过了.下面就是一个例子(使用的是spring4.1.5和mybatis3.2.8): <bean id="sqlSessionFa ...

  8. java 接收 char字符型

    import java.io.BufferedReader;import java.io.InputStreamReader;import java.util.Scanner; public clas ...

  9. 百度地图秘钥ak的获取

    今天打开网站的时候出现了这个问题“百度未授权使用地图API, 可能是因为您提供的密钥不是有效的百度开放平台密钥或此密钥未对本应用的百度地图JavasoriptAPI授权.....”经过研究终于知道什么 ...

  10. oracle 11g dataguard创建的简单方法

    oracle 10g可以通过基于备份的rman DUPLICATE实现dataguard,通过步骤需要对数据库进行备份,并在standby侧进行数据库的恢复.而到了11g,oracle推出了Dupli ...