快速业务通道

PHP正则表达式的几则使用技巧

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-05-23
,使“.”匹配任何字符

X     -模式中的空白忽略不计  

U     -匹配到最近的字符串

e     -将替换的字符串作为表达使用

格式:/apple/i匹配“apple”或“Apple”等,忽略大小写。     /i

PCRE的模式单元:

//1 提取第一位的属性

/^\d{2} ([\W])\d{2}\\1\d{4}$匹配“12-31-2006”、“09/27/1996”、“86 01 4321”等字符串。但上述正则表达式不匹配“12/34-5678”的格式。这是因为模式“[\W]”的结果“/”已经被存储。下个位置“\1”引用 时,其匹配模式也是字符“/”。

当不需要存储匹配结果时使用非存储模式单元“(?:)”

例如/(?:a|b|c)(D|E|F)\\1g/ 将匹配“aEEg”。在一些正则表达式中,使用非存储模式单元是必要的。否则,需要改变其后引用的顺序。上例还可以写成/(a|b|c)(C|E|F)\2g/。

PCRE正则表达式函数:

以下为引用的内容:

  1. preg_match()和preg_match_all()  
  2. preg_quote()  
  3. preg_split()  
  4. preg_grep()  
  5. preg_replace()

函数的具体使用,我们可以通过PHP手册来找到,下面分享一些平时积累的正则表达式:

匹配action属性

 

以下为引用的内容:

  1. $str = '''';  
  2.     $match = '''';  
  3.     preg_match_all(''/\s+action=\"(?!http:)(.*?)\"\s/''$str$match);  
  4.     print_r($match); 

在正则中使用回调函数

 

以下为引用的内容:

  1. /**  
  2.    * replace some string by callback function  
  3.    *  
  4.    */ 
  5.   function callback_replace() {  
  6.       $url = ''http://esfang.house.sina.com.cn'';  
  7.       $str = '''';  
  8.       $str = preg_replace ( ''/(?<=\saction=\")(?!http:)(.*?)(?=\"\s)/e''''search(\$url, \\1)''$str );  
  9.         
  10.       echo $str;  
  11.   }  
  12.     
  13.   function search($url$match){  
  14.       return $url . ''/'' . $match;  
  15.   } 

带断言的正则匹配

 

以下为引用的内容:

  1. $match = '''';  
  2.    $str = ''xxxxxx.com.cn bold font 

    paragraph text

    ''
    ;  
  3.    preg_match_all ( ''/(?<=<(\w{1})>).*(?=<\/\1>)/''$str$match );  
  4.    echo "匹配没有属性的HTML标签中的内容:";  
  5.    print_r ( $match ); 

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号