找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 1260|回复: 0
打印 上一主题 下一主题

非常重要的php正则表达式详解

[复制链接]

2588

主题

2588

帖子

7694

积分

论坛元老

Rank: 8Rank: 8

积分
7694
跳转到指定楼层
楼主
发表于 2018-2-14 05:40:00 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

             正则表达式是php中一个非常重要的知识点,通常用来查找和替换字符串,最常用的就是验证用户输入的信息格式是否正确,如邮件格式、电话格式等等。还有比如采集器之类的软件中,正则也是必用不可!
  现在开始来学习正则表达式的基本语法:
1.“/”是定界符,“/”定界符之间的部分就是将要在目标对象中进行匹配的模式。同时为了正则更加灵活,引入了元字符,即“+”, “*”,以及 “?”。
(1)“+”元字符规定其前导字符必须在目标对象中连续出现一次或多次
比如:/php+/,能够与“phpp”匹配,即字母ph后面连续出现一个或多个字母p的字符串相匹配。
(2)“*”元字符规定其前导字符必须在目标对象中出现零次或连续多次
比如:/php*/能够与“phpddt”相匹配,即ph后面可以有0个或多个p
(3)“?”元字符规定其前导对象必须在目标对象中连续出现零次或一次。
比如:/php?/能够“pher”匹配,即phh后面可以有0个或者1个p
其他重要的元字符:

  
  • \s:用于匹配单个空格符,包括tab键和换行符;
      

      
  • \S:用于匹配除单个空格符之外的所有字符;
      

      
  • \d:用于匹配从0到9的数字;
      

      
  • \w:用于匹配字母,数字或下划线字符;
      

      
  • \W:用于匹配所有与\w不匹配的字符;
      

      
  • . :用于匹配除换行符之外的所有字符。
      


    示例:/\s+/用于匹配目标对象中的一个或多个空格字符
    2.定位符用于规定匹配模式在目标对象中的出现位置。常用的有“^”, “$”, “\b” 以及 “\B”
    (1)“^”定位符规定匹配模式必须出现在目标字符串的开头
    (2)“$”定位符规定匹配模式必须出现在目标对象的结尾
    (3)\b定位符规定匹配模式必须出现在目标字符串的开头或结尾的两个边界之一
    (4)“\B”定位符则规定匹配对象必须位于目标字符串的开头和结尾两个边界之内
    3.php的正则匹配模式非常灵活,可以指定某一范围
    例如:
    /[A-Z]/
    上述正则表达式将会与从A到Z范围内任何一个大写字母相匹配。
    /[a-z]/
    上述正则表达式将会与从a到z范围内任何一个小写字母相匹配。
    /[0-9]/
    上述正则表达式将会与从0到9范围内任何一个数字相匹配。
    /([a-z][A-Z][0-9])+/
    上述正则表达式将会与任何由字母和数字组成的字符串
    4.可以同时与多种模式选择匹配
    如/phpddt.com|phpddt|100/可以与“phpddt.com” “phpddt” “100”相匹配
    5.否定符 “[^]”规定目标对象中不能存在模式中所规定的字符串
    例如:[^phpddt]匹配除了phpddt字符外的所有东西
    下面来讲讲正则表达式常用函数吧!(非常重要)
    ';
    }else {
    echo '匹配失败';
    }
    //preg_quote("字符串") 在每个有正则表达式语法前面加入一个转义字符即\

    $str = "php点点通是一个学习php的网站,(⊙o⊙)…";
    echo preg_quote($str);
    echo "";

    //preg_split("正则","字符串")分割字符串
    $php = "+php++点点通++++是好网站";
    $field = preg_split("/\+{1,}/",$php);
    foreach($field as $f){
    echo $f." ";
    }
    echo "";
    //preg_grep("正则","字符串") 与数组匹配后返回新数组
    $phpddt = array("php点点通","php100","呵呵","hahaha","phpchina");
    $item = preg_grep("/^php/",$phpddt);
    print_r($item);

    echo "";
    //preg_replace("正则","替换内容","原字符串")  很重要,很常用
    $a = "欢迎光临http://www.jb51.net/"; //给http开头的加上超链接
    echo preg_replace("/http:\/\/(.*)\//","[url=]\${0}[/url]","$a");
    ?>
    以上就是本文的全部内容,希望对大家的学习php正则表达式有所帮助。
                
                
    您可能感兴趣的文章:
  • php正则表达式完全教程之精华篇
  • php获取超链接文本内容的正则表达式(五种方法)
  • php正则表达式中贪婪与非贪婪介绍
  • php正则表达式验证(邮件地址、Url地址、电话号码、邮政编码)
  • PHP正则表达式过滤html标签属性(DEMO)
  • PHP正则表达式入门教程(推荐)
  • PHP正则表达式抓取某个标签的特定属性值的方法
  • Ajax和PHP正则表达式验证表单及验证码
  • php使用正则表达式获取字符串中的URL
  • 史上最全的PHP正则表达式(手机号需要加上177-***)
            
  • 分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
    收藏收藏
    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    用户反馈
    客户端