preg_replace的一些细节

.$pattern是数组,$replace也是数组,则中对应的 元素进行替换php

php正则表达式

preg_replace有五个参数,有三个是必须参数数组

Preg_replace(mixed $pattern, mixed $replacement, mixed $subject [,int $limit = -1 [,int $count ]]);spa

 

 

$pattern 能够是字符串,字符串数组,或者pregblog

$replace 是用于替换的字符串或字符串数组模板引擎

$subject 目标字符串或者目标字符串数组字符串

$limit 每一个模式在每一个$subject上最大的替换次数,默认是-1(无限次)string

$count 返回在目标字符串所替换的次数it

在repalce与pattern中有几点要注意的编译

 

 

 

1.$pattern是数组,$replace也是字符串,那么全部模式都使用这个字符串来匹配;

 

2.$pattern是数组,$replace也是数组,则中对应的 元素进行替换

3.若是数组$pattern大于$replace,则多出来的$pattern用空的字符串进行替换,


$replace少于$patterns,则匹配到的值所有用空字符串来替换

4.对于上面例子中出现的${1},${2},${3},这个叫作包含后向引用,里面的数字表明原子出现的位数,有两种写法,一种是\\n,一种是${n},推荐使用第二种写法.会把目标字符串匹配到的pattern中的原子,按照要求变化目标字符串的格式,或者匹配的原子原样输出(这里举两个例子)

 

 把时间按照 下划线分割开来,${3}就是匹配的到$patterns中的第三个原子((\d{1,2})),${4}就是匹配的到$patterns中的第四个原子((\d{1,2}))以此类推,

 

 例如你们熟悉的smarty模板引擎中编译后替换的方法

5.第四个参数的$limit的使用,第四个参数的意思是每一个模式在每一个subject上进行替换的最大次数


若是limit为n,它只用正则替换n次

6.第五个参数$count的使用,$count的意思是,subject目标字符串被替换的次数,拿第五点的例子来讲



上面代码中的例子运行结果以下:
 
 

附加:

preg_replace与str_replace的关系是什么呢?

咱们能够理解为str_replace是preg_repalce的一个子集.只是str_replace中的第一个参数写的是string,而preg_replace写的是一个正则表达式

相关文章
相关标签/搜索