删除文件名中所有非单词字符的最简单方法是什么?
显然需要扩展前的结尾点,因此除“{{1 }}“
这样的事情:
-
答案 0 :(得分:3)
为什么不:
$filename = preg_replace('/[^.\w]/', '', $filename);
这将删除任何不单词字符或句点的字符。
答案 1 :(得分:3)
我会使用类似的东西:
$filename = preg_replace("/\W(?=.*\.[^.]*$)/", "", $filename);
只要有一段延期时间,正则表达式就会匹配文件名中的任何非单词字符(“单词字符”这里由类[a-zA-Z0-9_]
定义)。
这还将考虑可能的文件名,例如file.name.txt
并正确返回filename.txt
(第一个点不是文件扩展名的点)。
答案 2 :(得分:1)
我的偏好是
$filename = preg_replace('/[^.a-zA-Z]/', '', $filename);
如果你想添加数字,那么
$filename = preg_replace('/[^.a-zA-Z0-9]/', '', $filename);