我对正则表达式有点问题。我想清理一个字符串。
目前我正在使用以下正则表达式:
preg_replace("/[^a-zA-Z0-9 _-]/", "", "Example1:2@32");
给了我:“Example1232”
但结肠也不应该被取代。我已经尝试过了:
preg_replace("/[^a-zA-Z0-9 _-:]/", "", "Example1:2@32");
但这不起作用。有人可以帮帮我吗?
答案 0 :(得分:3)
您必须转义-
字符
preg_replace("/[^a-zA-Z0-9 _\-:]/", "", "Example1:2@32"));
答案 1 :(得分:2)
任何一种方法都应该有效:
-
或-
放在正则表达式的末尾,因为在其他两个字符之间它具有一定的含义(即范围,如a-z
)。