正则表达式删除前缀并附加后缀
Regex to remove prefix and append suffix
我有这样的字符串:
prefix_foobar
我想删除 'prefix_' 部分并在末尾附加一个“_后缀”。
foobar_suffix
是否可以在 PHP 中通过仅调用一次 preg_replace 来完成此操作?
编写一个模式来删除 'prefix_' 并将其替换为 '' 很容易,但我正在努力解决如何追加到末尾的问题。
怎么样:
$output = preg_replace('/prefix_(.*?)/', "_suffix", $input);
是的,你可以做到:
$repl = preg_replace('/prefix_(.+)(?<!_suffix)$/', '_suffix', $input);
负向回溯 (?<!_suffix)
是为了避免在已经存在的情况下添加后缀。
RegEx Demo
我个人会这样做:
$var = 'prefix_koko';
echo ltrim($var, 'prefix_').'_my_suffix';
我有这样的字符串:
prefix_foobar
我想删除 'prefix_' 部分并在末尾附加一个“_后缀”。
foobar_suffix
是否可以在 PHP 中通过仅调用一次 preg_replace 来完成此操作?
编写一个模式来删除 'prefix_' 并将其替换为 '' 很容易,但我正在努力解决如何追加到末尾的问题。
怎么样:
$output = preg_replace('/prefix_(.*?)/', "_suffix", $input);
是的,你可以做到:
$repl = preg_replace('/prefix_(.+)(?<!_suffix)$/', '_suffix', $input);
负向回溯 (?<!_suffix)
是为了避免在已经存在的情况下添加后缀。
RegEx Demo
我个人会这样做:
$var = 'prefix_koko';
echo ltrim($var, 'prefix_').'_my_suffix';