PHP正则表达式替换怎么实现

  介绍

这篇文章给大家分享的是有关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正则表达式替换怎么实现