Php 一个数字可以以9开头,但不能连续以999开头的正则表达式

Php 一个数字可以以9开头,但不能连续以999开头的正则表达式,php,regex,pcre,Php,Regex,Pcre,我正在尝试制作一个正则表达式,其中: 数字可以从3、5、6或9开始 号码不能以999开头 因此,例如,93214211匹配,但99912345不应匹配 这就是我目前拥有的满足第一个要求的产品: ^3 | ^5 | ^6 | ^9 |[^…]) 我被第二个要求困住了一段时间。 谢谢 您可以像这样使用负前瞻 ^(?!999)[3569]\d{7}$ <-- assuming the number to be of 8 digits 99321421怎么样?谢谢你这么快的回复!!您编辑之前的一

我正在尝试制作一个正则表达式,其中:

  • 数字可以从3、5、6或9开始
  • 号码不能以999开头
  • 因此,例如,
    93214211
    匹配,但
    99912345
    不应匹配

    这就是我目前拥有的满足第一个要求的产品:

    ^3 | ^5 | ^6 | ^9 |[^…])

    我被第二个要求困住了一段时间。
    谢谢

    您可以像这样使用
    负前瞻

    ^(?!999)[3569]\d{7}$ <-- assuming the number to be of 8 digits
    

    99321421怎么样?谢谢你这么快的回复!!您编辑之前的一个就足够了,因为我在cakephp程序中添加了一个条件来验证maxLength为8。@AlfonsoKhiew现在您可以在没有条件的情况下使用给定的正则表达式检查8位。只是为了好玩,一个类似的带有lookbehind的正则表达式:。
    ^ #Start of string
      (?!999) #Negative lookahead. Asserts that its impossible to match 999 in beginning
      [3569] #Match any of 3, 5, 6 or 9
      \d{7} #Match 7 digits
    $ #End of string