php preg_匹配任意模式的正则表达式
我想用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}$/ 演示:试试这个: /^
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
也有点少见;通常,您只能在多行模式中看到它们。使用^
和$
除非您使用多行模式。我可能建议将前缀设置为非捕获组…除此之外,看起来不错:)我可能建议将前缀设置为非捕获组…除此之外,看起来不错:)