关于str_replace和preg_relace的用法和区别的一些整理

str_replace和preg_relace这两个PHP系统函数都是用来“替换”的函数,str_replace主要用于字符串替换,而preg_relace顾名思义用于正则表达式替换,他们的具体用法和区别本文将举例说明。

str_replace的用法

1.字符串替换
比如变量 a = ’ s i n a , s o h u , i t y a n g ’ , 我 要 把 这 个 a=’sina,sohu,ityang’,我要把这个 a=sina,sohu,ityang,a字符串中的sina替换成qq,那么这样用str_replace函数:

$a = str_replace('sina','qq',$a);

这样就替换成功了。第一个参数是要查找的字符串,第二个参数是要替换成什么字符串,第三个参数是以什么变量输出。

2.带有数组形式的str_replace替换
还是变量$a=’sina,sohu,ityang’,我要把sina替换成qq,sohu替换成google,这样用str_replace函数:

$a = str_replace(array('sina','sohu'),array('qq','google'),$a);

这样同时进行了两个不同字符串的替换,这种用法很有用,和第一种情况的区别就是用数组可以同时处理多个替换的需求,叫做数组映像替换。
注意:str_replace不能做正则替换

preg_relace正则表达式替换

1.不需要用到匹配结果的情况
比如有个字符串 a = ’ i t y a n g − 66 ’ , 这 个 字 符 串 可 能 的 形 式 很 多 , 还 可 能 是 a=’ityang-66’,这个字符串可能的形式很多,还可能是 a=ityang66a=’ityang-26′,或’ityang-38′,’ityang-99’,但是都有个特征就是,’ityang-‘后面接数字,这个时候就要用正则表达式进行匹配了。
要把后面的数字统一替换成一个字母”nums”怎么办?看以下代码:

$a = preg_replace('/ityang-([0-9]+)/','nums',$a);

第一个参数是正则表达式,用’//’里面内容代表正则表达式,关于正则表达式的含义和用法这里不多讲,这里匹配的是以ityang-开头的接数字的字符串的意思,其中括号里面的就是匹配的结果,可以多个括号,那么就是匹配到的不同分组,第二个参数是要替换成什么,第三个参数是以什么变量输出。

2.需要用到匹配结果的情况
还是第一个情况的例子,我不是要把数字统一替换成字母“nums”,而是在这个数字后面再加上一个字符串“-list”,就是把“ityang-1”这样的变成“ityang-1-list”,这个时候要用到匹配到的结果。

$a = preg_replace('/ityang-([0-9]+)/','ityang-${1}-list',$a);

第二个参数${1}就是正则表达式匹配的结果,1表示第一个括号里面的,这里也只有一个括号,以此类推。
这就是str_replace替换和preg_relace正则替换函数的基本用法,掌握了基本用法,就可以灵活运用处理很多问题,这两个函数是处理字符串非常常见的函数,功能十分强大。

{preg_replace("/[0-9]/","*",$t.content)}

将字段content中的数字都替换为“*”这个是我现在用的cms的替换列子,大家不用理会!我只是备注下!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值