2

我对正则表达式有一点问题。我想清理一个字符串。

目前我正在使用以下正则表达式:

preg_replace("/[^a-zA-Z0-9 _-]/", "", "Example1:2@32");

这给了我:“Example1232”

但是冒号也不应该被替换。我已经尝试过:

preg_replace("/[^a-zA-Z0-9 _-:]/", "", "Example1:2@32");

但这不起作用。有人可以帮助我吗?

4

2 回答 2

3

你必须逃避-角色

preg_replace("/[^a-zA-Z0-9 _\-:]/", "", "Example1:2@32"));
于 2012-01-15T18:34:14.070 回答
2

任何一种方法都应该有效:

  • 逃离破折号-
  • 将破折号-放在正则表达式的末尾,因为在其他两个字符之间它具有一定的含义(即范围,如a-z)。
于 2012-01-15T18:32:07.887 回答