这篇文章给大家分享的是有关PHP正则表达式替换怎么实现的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。
PHP正则表达式替换的相关概念:
preg_replace:执行正则表达式的搜索和替换
mixed preg_replace (,, mixed 模式,,, mixed 更换,,, mixed subject [, int 限制])
preg_replace:允许你替换字符串中匹配到你定义的正则表达式。
一个简单的注释移除功能:
preg_replace (& # 39; [(/*) + + (*/)]。& # 39;, & # 39; & # 39;, val美元);
这段代码可以移除在PHP和CSS中使用/*注释*/格式的多多行注释。其中的三个参数分别为正则表达式,要替换成的字符串和要替换的目标字符串(这里要做移除功能,所以是个空白字符串→& # 39;& # 39;)。如果你想匹配次级规则,可以使用$ 0代表全部匹配,$ 1、$ 2等,以此类推代表分别的次级规则。
在主题中搜索模式模式的匹配项并替换为更换。如果指定了极限,则仅替换限制个匹配,如果省略限制或者其值为1,则所有的匹配项都会被替换。
替换可以包含//n形式或(自PHP 4.0.4起)$ n形式的逆向引用,首选使用后者。每个此种引用将被替换为与第n个被捕获的括号内的子模式所匹配的文本营收可以从0到99,其中//0或$ 0指的是被整个模式所匹配的文本。对左圆括号从左到右计数(从1开始)以取得子模式的数目。
对替换模式在一个逆向引用后面紧接着一个数字时(即:紧接在一个匹配的模式后面的数字),不能使用熟悉的符//1号来表示逆向引用。举例说//11日将会使preg_replace()搞不清楚是想要一个//1的逆向引用后面跟着一个数字1还是一个//11的逆向引用。本例中的解决方法是使用/${1}1。这会形成一个隔离的1美元逆向引用,而使另一个1只是单纯的文字。
<强> PHP正则表达式替换的相关实例:强>
例子1。逆向引用后面紧接着数字的用法
& lt; ? php =$ string “April  15日,2003,,,=$ pattern “/(/w +), (/d +), (/d +)/我,, replacement 美元;=,“/${1}1/3美元,,, print preg_replace()美元模式,替代美元,美元的字符串),,/*,Output ,,======, April1, 2003, */, 祝辞;
如果搜索到匹配项,则会返回被替换后的主题,否则返回原来不变的话题。
preg_replace()的每个参数(除了限制)都可以是一个数组。如果模式和替换都是数组,将以其键名在数组中出现的顺序来进行处理。这不一定和索引的数字顺序相同。如果使用索引来标识哪个模式将被哪个替换来替换,应该在调用preg_replace()之前用ksort()对数组进行排序。
例子2。在preg_replace()中使用索引数组
& lt; ? php $ string =,, “从而quick brown  fox jumped 配套;从而lazy 狗!”, 美元模式[0],=,“/快速/? 美元模式[1],=,“/棕色/? 美元模式[2],=,“福克斯/? 替代美元[2],=,“bear",, 替代美元[1],=,“black",, 替代美元[0],=,“slow",, print preg_replace()美元模式,替代美元,美元的字符串),,/*,Output ,,======, 从而bear black  slow jumped 配套;从而lazy 狗只 */,/*,By ksorting  patterns 以及替代品, should 我方表示歉意才能get what 想要只;*/,我方表示歉意 ksort(模式),, ksort(美元替代品);, print preg_replace()美元模式,替代美元,美元的字符串),,/*,Output ,,======, 从而slow black  bear jumped 配套;从而lazy 狗只 */, ?在
如果主题是个数组,则会对主题中的每个项目执行搜索和替换,并返回一个数组。
如果模式和替换都是数组,则preg_replace()会依次从中分别取出值来对问题进行搜索和替换。如果替代中的值比模式中的少,则用空字符串作为余下的替换值。如果模式是数组而替换是字符串,则对模式中的每个值都用此字符串作为替换值。反过来则没有意义了。
/e修正符使preg_replace()将更换参数当作PHP代码(在适当的逆向引用替换完之后)。提示:要确保更换构成一个合法的PHP代码字符串,否则PHP会在报告在包含preg_replace()的行中出现语法解析错误。
例子3。替换数个值
& lt; ? php $ patterns =时间array 大敌;; (“/(19 | 20)(/d {2}) - (/d {1,2}) - (/d {1,2})/,,, ,,,,,,,,,,/^/s * {(/w +)}/s *=/?,, $ replace =时间array 大敌;; (“//3///4///1//2“,,,//1美元,=?,, print preg_replace , (模式、美元,美元取代,“{startDate可以},=,1999 - 5 - 27“),, 祝辞;PHP正则表达式替换怎么实现