你怎么在正则表达式中允许' - '?

时间:2012-07-23 03:54:47

标签: php regex

我试图允许' - '在电话号码的正则表达式中, - 通常用于范围(例如A-Z)。那么如何才允许这个角色呢?我尝试使用/ - 转义,但这不起作用。

$reg_num = "/[^0-9+ ()]/"; 

4 个答案:

答案 0 :(得分:5)

您需要使用反斜杠\来转义它。所以它应该写成\-

答案 1 :(得分:3)

将它写在最后而不是' - '在两个字符之间。 很简单的例子: [0-9-]会匹配099-2233-3333,其中0-9是一个范围,最后的-是一个单独的短划线符号来匹配。

答案 2 :(得分:1)

首先放在范围内,例如[^-0-9+ ()]。连字符需要分隔两个字符来定义范围;如果不是(在这种情况下,因为^也被解释为修饰符,而不是集合中的字符),那么它就像集合中的任何一个字符一样。

答案 3 :(得分:0)

使用\-

转义
\

是逃脱角色!