正则表达式删除前缀并附加后缀


Regex to remove prefix and append suffix

我有一个这样的字符串:

prefix_foobar

我想删除"prefix_"部分并在末尾附加"_suffix"。

foobar_suffix

是否可以在 PHP 中仅通过调用一次preg_replace来执行此操作?

编写一个模式来删除"prefix_"并将其替换为"很容易,但我正在努力解决如何附加到末尾的问题。

是的,你可以这样做:

$repl = preg_replace('/prefix_(.+)(?<!_suffix)$/', '${1}_suffix', $input);

负面的后视(?<!_suffix)是避免在后缀已经存在时添加后缀。

正则表达式演示

怎么样:

$output = preg_replace('/prefix_(.*?)/', "$1_suffix", $input);

我个人会这样做:

$var = 'prefix_koko';
echo ltrim($var, 'prefix_').'_my_suffix';