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