使用preg_replace删除不需要的字符但需要保留'。'

时间:2015-12-01 17:52:04

标签: php regex preg-replace

我正在使用php preg_replace来清理我的上传文件,我想要删除任何不需要的字符,如(&?/ \〜{} [] - 即删除空格等),但我不想去掉 '。' (句号/期间)因为它正在剥离文件扩展名。

我一直在搜索互联网,但只是继续找到删除所有特殊字符或过于复杂的正则表达式。

继续我当前的代码,但正如你所看到的,它正在删除'。'

$filename = preg_replace("/[^a-zA-Z0-9]/", '', "{$uploadedFile}");

必须有一个我错过的答案,因为这似乎是一个相当直接的要求,有没有人知道我需要包括什么?

1 个答案:

答案 0 :(得分:4)

字符类列出了您要允许/禁止的字符。所以在你的角色类中添加.,你应该好好去。

$filename = preg_replace("/[^a-zA-Z0-9.]/", '', "{$uploadedFile}");

演示:https://regex101.com/r/bE5qI4/1

有关其他信息:http://www.regular-expressions.info/charclass.html

另外值得注意的是:

  

在大多数正则表达式中,字符类中唯一的特殊字符或元字符是右括号(]),反斜杠(),插入符号(^)和连字符( - )。