Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何在正则表达式中允许“-”?_Php_Regex - Fatal编程技术网

Php 如何在正则表达式中允许“-”?

Php 如何在正则表达式中允许“-”?,php,regex,Php,Regex,我试图在电话号码的正则表达式中允许“-”,但是-通常用于范围,例如A-Z。那么如何仅允许字符?我试着用/-逃跑,但那不起作用 $reg_num = "/[^0-9+ ()]/"; 你需要用反斜杠\来逃避它。所以它应该写为\-.在结尾处写,而不是在两个字符之间写“-”。 非常简单的示例: [0-9-]将匹配099-2233-3333,其中0-9是一个范围,最后的-是一个单独的破折号进行匹配。将其放在范围的第一位,如[^-0-9+]。连字符需要分隔两个字符以定义范围;如果在本例中不是因为“^”也

我试图在电话号码的正则表达式中允许“-”,但是-通常用于范围,例如A-Z。那么如何仅允许字符?我试着用/-逃跑,但那不起作用

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

你需要用反斜杠\来逃避它。所以它应该写为\-.

在结尾处写,而不是在两个字符之间写“-”。 非常简单的示例:
[0-9-]将匹配099-2233-3333,其中0-9是一个范围,最后的-是一个单独的破折号进行匹配。

将其放在范围的第一位,如[^-0-9+]。连字符需要分隔两个字符以定义范围;如果在本例中不是因为“^”也被解释为修饰符,而不是集合中的字符,那么它只是集合中的一个字符,就像其他字符一样。

使用\-

是逃避性格

\