码迷,mamicode.com
首页 > 其他好文 > 详细

正则表达式的语法规则

时间:2014-08-11 23:54:43      阅读:352      评论:0      收藏:0      [点我收藏+]

标签:http   使用   io   2014   ar   cti   div   代码   

正则表达式描述了一种字符串匹配的模式,通过这个模式在特定的函数中对字符串进行匹配、查找、替换及分割等操作。正则表达式作为一个匹配的模板,是由原子(普通字符,例如字符a到z)、有特殊功能的字符(称为元字符,例如*、+和?等),以及模式修正符三部分组成的文字模式。一个最简单的正则表达式模式中,至少也要包含一个原子,如“/a/”。而且在与Perl兼容的正则表达式函数中使用的模式时,一定要给模式加上定界符,即将模式包含在两个反斜线“/”之间。一个HTML连接的正则表达式模式如下所示:

  ‘/<a.*?(?:|\\t|\\r|\\n)?href=[\‘"]?(.+?)[\‘"]?(?:(?:|\\t|\\r|\\n)+.*?)?>(.+?)<\/a.*?>/sim’      //匹配连接的正则
  在网页中任何HTML有效的连接标签,都可以和这个正则表达式的模式匹配上。该模式就用到了编写正则表达模版的原子、元字符和模式修正符三个组成部分,将其拆分后如下所示。
  ★定界符使用的是两个斜线“/”,将模式放在它之间声明。
  ★原子用到了<、a、href、=、’、”、/、>等普通字符和\t、\r、\n等转义字符。
  ★元字符使用了[]、()、|、.、?、*、+等具有特殊含义的字符。
  ★用到的模式修正符是在定界符最后一个斜线之后的三个字符“s”、“i”和“m”。
  对于原子、元字符,以及模式修正符的使用将在后面详细介绍。首先编写一个示例,了解一下正则表达式的应用。通过PHP中给我们提供的preg_match()函数,将上例中定义的正则表达式。该函数有两个必选参数,第一个参数需要提供用户编写的正则表达式模式,第二个参数需要一个字符串。该函数的作用就是在第二个字符串参数中,搜索第一个参数给正确表达式匹配的内容。如果匹配成功则返回真。代码如下所示:

 

1
2
3
4
5
6
7
8
9
10
11
<?php
    $pattern=‘/<a.*?(?:|\\t|\\r|\\n)?href=[\‘"]?(.+?)[\‘"]?(?:(?:|\\t|\\r|\\n)+.*?)?>(.+?)<\/a.*?>/sim‘;
    $content="请单击进入<a href=‘http://php.ncong.com‘>恩聪PHP</a>学习博客。";
 
    //使用preg_match()函数进行正则表达式的模式匹配
    if(preg_match($pattern,$content)){
        echo "成功匹配,在第二个参数中包含有效的HTML连接标签字符串。";
    }else{
        echo "在第二个参数的字符串中搜索不到有效的HTML连接标签。";
    }
?>
  在上面的代码中,使用正则表达式的语法规则,定义个一匹配HTML中连接标签的模式并存放在变量$pattrn中。又顶一个字符串变量$content,在字符串中如果包含有效的HTML连接标签,则使用preg_match()函数时,就可以按$pattrn模式所定义的格式搜索到连接标签。
 
 

正则表达式的语法规则,布布扣,bubuko.com

正则表达式的语法规则

标签:http   使用   io   2014   ar   cti   div   代码   

原文地址:http://www.cnblogs.com/ncong/p/3905554.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!