php preg_replace替换函数的用法

发表日期:2014/1/13 1:59:20 浏览次数:

解释:字符串比对解析并取代。

语法: mixed preg_replace(mixed pattern, mixed replacement, mixed subject);

返回值: 混合类型资料

函数种类: 资料处理

内容说明: 本函数以 pattern 的规则来解析比对字符串 subject,欲取而代之的字符串为参数 replacement。返回值为混合类型资料,为取代后的字符串结果。

php
//preg_replace()和ereg_replace()函数的使用的比较
// -------preg_replace()--------------------------
//1.进行字符串的查找的替换
$str= "daoyu shi ge hao hai zi 5555";
$pattern= "/\s/";//如果将变量定义为$pattern_1会出错
$str= preg_replace($pattern,'-',$str);
echo $str."
";

//2.对字符串的逆向引用
//方法一
$pat= "/(\w+)-(\w+)-(\w+)-(\w+)-(\w+)-(\w+)-(\d+)/i";
$str=preg_replace($pat,"\$1",$str);
echo $str."
";

//注意:如果是下面这种形式你会发现匹配的是:zi- 所以可以这样认为在有次数的{6}的情况下,他($1)匹配的是最后一次
$pat= "/((\w+)-){6}(\d+)/i";
$str=preg_replace($pat,"\$1",$str);
echo $str."
";


//方法二
$str= "daoyu-shi-ge-hao-hai-zi-5555";
$pat= "/(\w+)-(\w+)-(\w+)-(\w+)-(\w+)-(\w+)-(\d+)/i";
$str=preg_replace($pat,"\\1",$str);
echo $str."
";

//注意:当正则写成$pat= "/((\w+)-){6}(\d+)/i";时和上面的情况一样
//3 当参数是数组的情况(用下手册的例子)
$string = "The quick brown fox jumped over the lazy dog.";

$patterns[0] = "/quick/";
$patterns[1] = "/brown/";
$patterns[2] = "/fox/";

$replacements[2] = "bear";
$replacements[1] = "black";
$replacements[0] = "slow";

print preg_replace($patterns, $replacements, $string)."
";

//或许你已经发现了,他是按“将以其键名在数组中出现的顺序来进行处理。这不一定和索引的数字顺序相同”按我的理解就是在按“写”的顺序而这并不一定是//索引的顺序(书册上还有还有ksort()后的例子,时间关系就不说了,有兴趣的兄弟可以自己找着看下)

//好preg_replace()就扯到着,开是扯下一个ereg_replace()
//---------------------ereg_replace()------------------

//1.进行字符串的查找的替换
$str= "daoyu shi ge hao hai zi 5555";
$pattern= "[a-zA-Z]+";//如果写成$pattern= "/[a-zA-Z]+/"; 将不做任何替换也就是说这里不能用正则“/”(可能就是着两个函数的第一个区别 :))
$str= ereg_replace($pattern,'~',$str);
echo $str."
";

//2.对字符串的逆向引用
//在用下书册上的例子
$string = "This is a test";
//echo ereg_replace("( )is", "\\1was", $string); //“\\1”匹配”(空格)is“ 这部分的空格,换句话说就是”替换为数字表示的的第几个括号内//的子串“

echo ereg_replace("(( )is)", "\\2was", $string)."
";

//对上面的使用还有疑惑的兄弟可参考写这篇文章http://elma.9iec.com/index.php?job=art&articleid=a_20051104_175700
$string = "The quick brown fox jumped over the lazy dog.";

$patterns[0] = "/quick/";
$patterns[1] = "/brown/";
$patterns[2] = "/fox/";

$replacements[2] = "bear";
$replacements[1] = "black";
$replacements[0] = "slow";

print ereg_replace($patterns, $replacements, $string)."
";
//总结
//1 preg_replace()里面的正则可以写成型如:"/..../"而ereg_replace()里面的正则需写成型如".....";
//2 preg_replace()能操作数组,而ereg_replace()不可以
//3在逆向引用用preg_replace()可使用0-99个,而ereg_replace()最多为9个

//在使用过程中感觉两者的区别不是很大,在功能上也比较相似..

?>

移动设备浏览《php preg_replace替换函数的用法》请扫描二维码, 欢迎访问更多网站设计,PHP,程序开发相关内容

公司座机:0519-85115799 服务热线:13357899835 EMAIL:admin@seo-fox.cn
业务QQ:285700415 公司地址:常州市新北区太湖东路9-2号创意大厦1502
上海股权托管交易中心 企业代码:205675
在我们眼里,一个网站应该是专业的,易于操作的,更重要的是:网站是强大的营销工具,让潜在客户了解你的公司提供的更多产品或服务
我们只做有价值的网站!
0
MAP
2007-2015 © 常州网狐信息技术有限公司