正则表达式删除前缀和追加后缀

时间:2015-01-07 13:16:08

标签: php regex

我有一个这样的字符串:

prefix_foobar

我想删除'prefix_'部分并在末尾添加'_suffix'。

foobar_suffix

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

编写一个模式来删除'prefix_'并将其替换为''很容易,但我正在努力追加到最后。

3 个答案:

答案 0 :(得分:3)

是的,你可以这样做:

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

负面反对 (?<!_suffix)是为了避免在已经存在的情况下添加后缀。

RegEx Demo

答案 1 :(得分:2)

怎么样:

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

答案 2 :(得分:2)

就我个人而言:

$var = 'prefix_koko';

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