PHP编程中正则表达式应用实例一

时间:2022-12-03 19:25:48

      正则表达式应用实例,笔者会在随后的博文里面陆续发布其应用实例。

处理Email地址

      在用户发布的内容中,我们需要捕捉其中的email,给其增加mailto的链接。

code:

   1: $str    = "My email is example@gmail.com";
   2: //$newStr    = ereg_replace("([.a-zA-Z0-9]+@[.a-zA-Z0-9]+)",'//1',$str);
   3: //$newStr    = preg_replace('/([.a-zA-Z0-9]+@[.a-zA-Z0-9]+)/','//1',$str);
   4: //$newStr    = preg_replace('/([.a-zA-Z0-9]+@[.a-zA-Z0-9]+)/','$1',$str);
   5: $newStr    = preg_replace('/([.a-zA-Z0-9]+@[.a-zA-Z0-9]+)/','//1',$str);
   6: echo $newStr,'
    
    
'
;

      这里用到了子表达式引用,使用//1或者$1(应用于preg)来引用pattern中的第一个子表达式,依次类推。

扑捉img中的src

      有时我们需要抓取img中的src内容。这里使用到避免贪婪模式方法。

code:

   1: $str    = 'PHP编程中正则表达式应用实例一';
   2:  
   3: preg_match('/src="(.*?)"/', $str, $match);
   4:  
   5: print_r($match);
   6:  
   7: //Array ( [0] => src="http://www.itdaan.com/imgs/2/1/1/4/75/16e9bcbf267a6d5e534b6c99d03260c7.jpe", [1] => http://www.itdaan.com/imgs/2/1/1/4/75/16e9bcbf267a6d5e534b6c99d03260c7.jpe )

      使用.*?中的?来实现非贪婪模式匹配。

过滤HTML文档JS脚本

      过滤危险脚本,在WEB设计中很重要。

Code:

   1: $script    = '
   2: 
   
   
   3: 
   
   
   4: 
   5: var siteUrl = "";
   6: var siteUrl = "";
   7: var siteUrl = "";
   8: 
   9: 
  10: 
  11: 
   
   
  12: 
  13: 
   
   
  14: 
  15: 
  16: ';
  17:  
  18: $patten    = '@