我所做的用户有可能通过一个文本来更改文件名,但现在我有一个正则表达式的问题。PHP正则表达式的文件名
正如我所看到的Windows 7,这些字符只能是不允许的文件名:
\/: * ? < > |
但我固执,或许也是明智的,选择正则表达式减少到只有这些特殊字符:
- _ .
所有其他人都应该被削减。
有人可以帮我这个正则表达式?
的preg_replace所有,但: A-Za-z0-9
和- _ .
我还真不明白它的窍门。
我所做的用户有可能通过一个文本来更改文件名,但现在我有一个正则表达式的问题。PHP正则表达式的文件名
正如我所看到的Windows 7,这些字符只能是不允许的文件名:
\/: * ? < > |
但我固执,或许也是明智的,选择正则表达式减少到只有这些特殊字符:
- _ .
所有其他人都应该被削减。
有人可以帮我这个正则表达式?
的preg_replace所有,但: A-Za-z0-9
和- _ .
我还真不明白它的窍门。
你的问题有字符集漂亮,多布置了。你只需要将它插入preg_replace()
就可以了。
试试这个:
$filename = preg_replace('/[^a-zA-Z0-9_.-]/', '', $filename);
的^
在字符集的开头,通过[]
包围,各国不字符-match列表。因此,该行可被视为“替换不是以下的字符”。
或简单'str_replace函数();'与这样' '''' – rsz
[^ A-ZA-Z0-9 \ -_]'一个空字符串替换unneded字符。 “任何不是以下任何一项......” –
你尝试过什么吗?谷歌搜索*正则表达式文件名*给你很多有用的结果。 – Tchoupi