删除最后一个字符后和最后一个点之前的所有空格

时间:2015-06-13 21:33:29

标签: php regex

我有一些使用PHP提取内容的rar文件,但有些文件在扩展名之前有空格,我无法弄清楚如何删除它。

示例:

This is a file.name (Testing) .rar

我想删除后面的空格和.rar但我不希望删除任何其他像file.name中的那个

这可能吗?

3 个答案:

答案 0 :(得分:1)

您可以使用以下正则表达式进行匹配:

\s*(?=(?:\.[^.]+)?$)

并替换为''(空字符串)

请参阅a typical Linux man page

答案 1 :(得分:0)

没有正则表达式:

[^\\n]

答案 2 :(得分:0)

以下代码使用PCRE替换最后一个点和最后一个点之前的最后一个非空白字符之间的空格:

$filename = "This is a file.name (Testing) .rar";
echo preg_replace("/^(.*?)\s*(\.[^\s\.]+)$/", "\\1\\2", $filename);

// will output:   This is a file.name (Testing).rar

限制:文件扩展名本身不得包含任何空格。