|
|
PHP正则表达式preg_replace的使用 |
作者:洛羽叶 点击率:4815 发布时间: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. |
|
|
|
|