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


php replace string not before defined char

我需要替换子字符串,但只是在"="右侧。例如,将"="之前的"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

's*(=?)'s*foo(?!'s*=)

试试这个。替换为$1bar。请参阅演示。

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

这也可以使用爆炸:

$replacement = "bar";
$parts = explode('=', $string);
$parts[0] = $eplacement;
$string = implode('=', $parts);