删除文件名中所有非单词字符的最简单方法是什么?
显然需要扩展名之前末尾的点,因此所有符号如“-
”或“*
”或“?
” "应该被删除,除了 ".
"
像这样:
$filename = preg_replace("/[^\.]\W/", "", $filename);
最佳答案
我会使用类似的东西:
$filename = preg_replace("/\W(?=.*\.[^.]*$)/", "", $filename);
正则表达式将匹配文件名中的任何非单词字符(此处的“单词字符”由类 [a-zA-Z0-9_]
定义),只要有句点扩展名。
这还将考虑可能的文件名,例如 file.name.txt
并正确返回 filename.txt
(第一个点不是文件扩展名的点).
关于php - 删除除 "."以外的所有非单词字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20846575/