我已经尝试了这两种方法,但它们都不太奏效。我需要删除文件名中的任何空格和/或额外的小数(显然最后一个除外)。
这可以很好地删除多余的小数,但仍然会留下空格:
$filename = preg_replace('/\.(?=.*\.)/', '', $filename);
有没有兼顾两者的解决方案?
我已经尝试了这两种方法,但它们都不太奏效。我需要删除文件名中的任何空格和/或额外的小数(显然最后一个除外)。
这可以很好地删除多余的小数,但仍然会留下空格:
$filename = preg_replace('/\.(?=.*\.)/', '', $filename);
有没有兼顾两者的解决方案?
这应该做你想要的:
$filename = preg_replace('/[\. ](?=.*\.)/', '', $filename);
关键是您要在字符集中的开头同时包含小数和空格。
顺便说一句,这是一个快速测试正则表达式尝试的好工具:http: //www.solmetra.com/scripts/regex/index.php