【发布时间】:2015-10-07 06:09:13
【问题描述】:
我正在尝试在正则表达式中使用字符串来去除除字母、数字、逗号、连字符和下划线之外的所有字符。
这是我目前使用的正则表达式:
$clean_input = preg_replace("/[^,-\w]+/", "", $input);
它在我的 PHP 日志中返回此警告
PHP Warning: preg_replace(): Compilation failed: invalid range in character class at offset 5 in [file]...
以前我使用了完全相同的正则表达式,但没有逗号字符,它确实有效(除了它仍然明显地去除逗号)。它看起来像这样:
$clean_input = preg_replace("/[^-\w]+/", "", $input);
如果您查看this example 我在在线正则表达式测试器工具中制作的内容,它会显示与我在代码中的完全相同的设置。它按照我的预期返回结果,除去逗号以外的所有内容。
是什么可能导致这个逗号字符出现问题。我试图逃避它,但这给出了同样的警告。感谢您的帮助正则表达式神!
【问题讨论】:
-
如果你想删除除字母、数字或逗号之外的所有内容,那么为什么要将
-放在 char 类中? -
下划线呢?
-
抱歉,我知道哪里出了问题。我已经更新了标题