【问题标题】:Using preg_replace to remove unwanted characters but need to keep '.'使用 preg_replace 删除不需要的字符但需要保留 '.'
【发布时间】:2015-12-01 17:52:04
【问题描述】:

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

我一直在网上搜索,但一直在寻找删除所有特殊字符或过于复杂的正则表达式。

这是我当前的代码,但如您所见,它正在删除 '.'

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

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

【问题讨论】:

    标签: php regex preg-replace


    【解决方案1】:

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

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

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

    更多信息:http://www.regular-expressions.info/charclass.html

    另外值得注意的是:

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

    【讨论】:

    • 克里斯,这很好,我知道会有一个简单的解决方案,感谢您的帮助和指向 charclass 的链接
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-10-27
    • 1970-01-01
    相关资源
    最近更新 更多