php 替换不在定义字符之前的字符串

php replace string not before defined char

我需要替换子字符串,但 just when 不只是它们的“=”。 例如。将“=”之前的 "foo" net 替换为 "bar"(忽略空格)

1) foo=foo    =>   foo=bar
2) foo = foo  =>   foo=bar    (whitespace before "=")
3) (foo)=foo  =>   (bar)=bar  ("=" is not just after "foo")

你知道什么简单的preg_replace吗? 我试过

/(foo)([\S^=]*)/x' etc

但它匹配所有 "foo" => bar=bar

这也可以使用爆炸来完成:

$replacement = "bar";
$parts = explode('=', $string);
$parts[0] = $eplacement;
$string = implode('=', $parts);
\s*(=?)\s*foo(?!\s*=)

通过 bar 尝试 this.Replace。查看演示。

https://regex101.com/r/hE4jH0/29