Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/236.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 preg_匹配任意模式的正则表达式_Php_Regex_Preg Match - Fatal编程技术网

php preg_匹配任意模式的正则表达式

php preg_匹配任意模式的正则表达式,php,regex,preg-match,Php,Regex,Preg Match,我想用php preg(preg\u match)验证一个模式。我的模式如下所示: [ [3 or 4 digits] - ][ 7 digits]{1} 示例: 345-4444444 9800-1120222 1111111 1000000 0233-7777777 我试过这个: pattern = "/\A[\d{3,4}[-]{0,1}]{0,1}\d{7}\z/"; 但这是不正确的。 请给出正确的图案。试试这个: /^(\d{3,4}-)?\d{7}$/ 演示:试试这个: /^

我想用php preg(
preg\u match
)验证一个模式。我的模式如下所示:

[ [3 or 4 digits] - ][ 7 digits]{1}
示例:

345-4444444
9800-1120222
1111111
1000000
0233-7777777
我试过这个:

pattern = "/\A[\d{3,4}[-]{0,1}]{0,1}\d{7}\z/";
但这是不正确的。 请给出正确的图案。

试试这个:

/^(\d{3,4}-)?\d{7}$/
演示:

试试这个:

/^(\d{3,4}-)?\d{7}$/

演示:

这不是方括号的工作方式。另外,您不需要使用
{0,1}
--
来明确所有内容,它也做同样的事情,人们更习惯于看到它。IMO更容易阅读。
\A
\z
也有点少见;通常,您只能在多行模式中看到它们。除非使用多行模式,否则请使用
^
$
。这不是方括号的工作方式。此外,您不需要使用
{0,1}
--
进行所有显式操作,人们更习惯于看到它。IMO更容易阅读。
\A
\z
也有点少见;通常,您只能在多行模式中看到它们。使用
^
$
除非您使用多行模式。我可能建议将前缀设置为非捕获组…除此之外,看起来不错:)我可能建议将前缀设置为非捕获组…除此之外,看起来不错:)