PHP正则表达式替换两个表达式中的表达式

时间:2013-11-08 10:21:58

标签: php regex

我正在尝试创建一个与preg_replace()一起使用的Regex表达式来替换两个其他表达式之间的表达式。 总体思路是:

$new = "stuff";
$original = /*see below*/;
$final = preg_replace('regex expression', $new, $original);

$ original string的例子:

  

(...)“dl cm = xxxx opop1 = XYZ opop3 = XXXXXXXXXXXX,XXXX,”thisisit“YYYY = z”(...)

$ final字符串的示例:

  

(...)“dl cm = xxxx opop1 = XYZ opop3 = XXXXXXXXXXXX,XXXX,”stuff“YYYY = z”(...)

(X,Y,Z可以是任何角色)

表达式必须找到'opop3 = XXXXXXXXXXXX,XXXX,''然后是以下'“'并更改这两个分隔符内的文本。

我认为我找到了如何找到第一个分隔符

(opop3.=(.*)(\,)(.*)(\,)\")

找到以下'''并不难,但我不知道如何在不触及分隔符的情况下更改它们之间的文本。

(如果有人知道其他方式,请告诉我)

1 个答案:

答案 0 :(得分:1)

您可以使用PCRE的\K(重置搜索):

$final = preg_replace('/XXXXXXXXXXXX,XXXX,"\K[^"]+/', $new, $original);