$string = 'img-file_name.jpg';
$pattern = '\.\w+';
$replacement = '_small$1';
echo preg_replace($pattern, $replacement, $string);
我想将_small附加到文件的末尾,就在之前。扩展
我希望最终结果为:img-file_name_small.jpg
接收错误:preg_replace():分隔符不能是字母数字或反斜杠
(它指的是最后一行,echo preg_replace ...
)
答案 0 :(得分:1)
没有正则表达式:
$string = 'img-file_name.jpg';
$replacement = '_small';
$p = pathinfo($string);
echo $p['filename'].$replacement.$p['extension'];
答案 1 :(得分:0)
您的模式缺少正确的delimiter - 正如错误消息所示。
$pattern = '/\.\w+/';
有效,例如$pattern = '#\.\w+#';
但要使此模式生效,您需要将扩展名定义为一个组(此时您将错过结果中的扩展名)。
$pattern = '#(\.\w+)#';
只有现在您才能使用$1
引用回模式