的示例:
this-is_a-random-filenam-jpg
this-is_a-random-filenam-png
this-is_a-random-filenam-gif
this-is_a-random-filenam-pdf
需要的结果:
this-is_a-random-filenam.jpg
this-is_a-random-filenam.png
this-is_a-random-filenam.gif
this-is_a-random-filenam.pdf
我想出了
\-(?=[^-]*$)
它只标记最后一次出现,不检查条件后面是否存在实际有效的文件扩展名(jpeg,jpg,pdf,gif在我的情况下)并且不能与&#一起使用34; _"
答案 0 :(得分:1)
要通过处理文件扩展名来执行此更改,您可以使用此正则表达式:
(-|_)(?=(?:jpe?g|png|gif|pdf)$)
并用.
替换匹配。
您必须在此模式中列出所需的所有文件扩展名。
$re = '/(-|_)(?=(?:jpe?g|png|gif|pdf)$)/';
$str = 'this-is_a-random-filenam-jpg
this-is_a-random-filenam-png
this-is_a-random-filenam-gif
this-is_a-random-filenam-pdf';
$subst = '.';
$result = preg_replace($re, $subst, $str);
答案 1 :(得分:0)
在正则表达式的末尾使用以下标志
/(-|_)(?=jpg|png|gif|pdf)/gm