PHP正则表达式的逆向引用与子模式 php preg_replace应用

mixed preg_replace ( mixed pattern, mixed replacement, mixed subject [, int limit])

功能

在 subject 中搜索 pattern 模式的匹配项并替换为 replacement。如果指定了 limit,则仅替换 limit 个匹配,如果省略 limit 或者其值为 -1,则所有的匹配项都会被替换。
replacement可以包含\n形式或$n形式的逆向引用,n可以为0到99,\n表示匹配pattern第n个子模式的文本,\0表示匹配整个pattern的文本。

子模式

$pattern参数中被圆括号括起来的正则表达式,子模式的数目即从左到右圆括号的数目。(pattern即模式)

例子

需求:把OT函数由OT(a)改成OT(a,b),加一个参数

<?php

$str = <<<EOD
_Article_Source=OT('.div(PosID('bd_nav')>0)[1#].a(PosHTML('/b*')>0)[1#]')
;_Article_Author=OT('.div(PosClass('doc_top p9')>0)[1#].a(PosClass('b')>0)[1#]')

EOD;

$reg='/(=OT(.+)()[ , ])/';

$replacement='$1,n$2';
echo preg_replace($reg,$replacement,$str);
?>

原文地址:https://www.cnblogs.com/ymy124/p/4090448.html