1

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

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

$original 字符串示例:

(...)"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.=(.*)(\,)(.*)(\,)\")

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

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

4

1 回答 1

1

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

$final = preg_replace('/XXXXXXXXXXXX,XXXX,"\K[^"]+/', $new, $original);
于 2013-11-08T10:27:08.693 回答