当前位置:  -> 首页 -> 原创文章 -> PHP正则表达式preg_replace的使用

上一篇 | 下一篇
PHP正则表达式preg_replace的使用
作者:洛羽叶  点击率:4485  发布时间:2009-01-21

函数声明:
 mixed preg_replace ( mixed pattern, mixed replacement, mixed subject [, int limit])
 
 从subject中搜索符合pattern的内容用replacement进行替换,limit为替换次数,-1为全部替换。
 replacement可以用\n或者$n的方式引用pattern中以()形式表示的字符,0<n<=99,顺序从左到右。
 pattern、replacement、subject可以为数组类型。

 a|b 匹配x或y
 [ab.-] 匹配所包含的任意一个字符
 [^ab.-] 匹配未包含的任意字符
 [a-z] 匹配指定范围内的任意字符
 [^a-z] 匹配任何不在指定范围内的任意字符
 \d 匹配一个数字字符。等价于 [0-9]。
 \D 匹配一个非数字字符。等价于 [^0-9]。
 \f 匹配一个换页符。等价于 \x0c 和 \cL。
 \n 匹配一个换行符。等价于 \x0a 和 \cJ。
 \r 匹配一个回车符。等价于 \x0d 和 \cM。
 \s 匹配任何空白字符,包括空格、制表符、换页符等
 \S 匹配任何非空白字符
 \t 匹配一个制表符
 \v 匹配一个垂直制表符
 \w 匹配包括下划线的任何单词字符
 \W 匹配任何非单词字符

例子:

 将字符中的"和‘替换为空
 $return=preg_replace("/[\"']/i","","my'home \"home\"");
 echo $return;
 output:myhome home
 
 将邮件地址的@替换为#
 $return=preg_replace("/([0-9]+|\s*)@([0-9]+\s*).(\s*)/i","#.","my@163.com");
 echo $return;
 output:my#163.com
 
 URL重写经常用到的表达式
 $return=preg_replace("/news.php\?action\=view&id\=([0-9]+)/i","news-av-.html","news.php?action=view&id=1");
 echo $return;
 output:news-av-1.html

去除文本中的超链接、邮件地址等信息
 $searcharray=array("/http:\/\/[a-z0-9\/\-_+=.~!%@?#%&;:$\()|]+\.(jpg|gif|png|bmp)/i",   
        "/((https?|ftp|gopher|news|telnet|rtsp|mms|callto):\/\/|www\.)([a-z0-9\/\-_+=.~!%@?#%&;:$\()|]+)/i",
        "/([_a-z0-9-+]+(\.[_a-z0-9-+]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,4}))/i"
     );
 $replacearray=array(
      "",      
      "",
      ""
     );
 $return=preg_replace($searcharray,$replacearray,'http://www.google.com www@google.com no hyper link.');
 echo $return;
 output:no hyper link.

标签: PREG_REPLACE PHP 正则表达式
引用地址:本站原创
   站点首页      技术人生      旅途足迹      我要留言      友情链接      关于站长   
[本站统计]
在线人数:3
今日访问:238
总访问量:1472512
Copyright 2006-2022 EasyWeb 1.6 订阅 All Rights Reserved
粤ICP备08028977号-1
www.luoriver.com
Created by WWH in 2006