正则表达式,数字可以从9开始,但不能连续999开始

Alf*_*iew 4 php regex pcre

我正在尝试制作正则表达式:

  1. 一个数字可以从3,5,6或9开始
  2. 该号码不能以999开头.

因此,例如,93214211匹配,但99912345不应匹配.

这就是我现在所满足的第一个要求:

^3|^5|^6|^9|[^...]}

我现在停留在第二个要求一段时间了.谢谢!

roc*_*987 6

你可以使用negative lookahead喜欢

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

正则表达式演示

正则表达式细分

^ #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
Run Code Online (Sandbox Code Playgroud)