我有一个具有以下结构的字符串。我想替换最后一个下划线后的字符。
$string = '
{$9018049_text_50024080_3} : {$9018049_text_53441884_3}
{$9018049_text_50024080_4} : {$9018049_text_53441884_4}
{$9018049_text_50024080_5} : {$9018049_text_53441884_5}
';
例如,如果我替换字符" 5"使用" DT5",输出应为
$string = '
{$9018049_text_50024080_3} : {$9018049_text_53441884_3}
{$9018049_text_50024080_4} : {$9018049_text_53441884_4}
{$9018049_text_50024080_DT5} : {$9018049_text_53441884_DT5}
';
我试过str_replace,但输出是
$string = '
{$9018049_text_DT50024080_3} : {$9018049_text_DT53441884_3}
{$9018049_text_DT50024080_4} : {$9018049_text_DT53441884_4}
{$9018049_text_DT50024080_DT5} : {$9018049_text_DT53441884_DT5}
';
这不是我想要的。任何帮助将不胜感激。
答案 0 :(得分:3)
如果我理解得很好:
$string = str_replace('_5}', '_DT5}', $string);
如果你想对花括号之间的每个内容做同样的事情,无论数字是什么:
$string = preg_replace('~_(\d+})~', '_DT$1', $string);
答案 1 :(得分:0)
答案 2 :(得分:0)
选择最后一行:
\n.*$
替换正则表达式:
_\d(?=})