删除所有非单词字符,但“。”

时间:2013-12-30 19:59:21

标签: php regex string preg-replace

删除文件名中所有非单词字符的最简单方法是什么?

显然需要扩展前的结尾点,因此除“{{1 }}“

这样的事情:

-

3 个答案:

答案 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);