匹配除 3 个特定数字之外的所有 5 位数字 - 没有负面回顾

matching all 5 digits numbers other than 3 specific ones-without negative lookbehind

所以我试图匹配 100001100068000[= 以外的任何 5 位数字22=]。负向后看、环视等。这段代码完全符合我的要求

^[0-9]{5}(?<!10000|11000|68000)$

。但是,我想在不使用 lookbehind 的情况下进行。有什么好的方法吗?

谢谢!

这将匹配所有 5 位数字,不包括您列出的几个数字
排除数字 10000、11000 和 68000

范围是:

00000 - 09999
10001 - 10999
11001 - 67999
68001 - 99999

^(?:0\d{4}|(?:1000[1-9]|100[1-9]\d|10[1-9]\d{2})|(?:1100[1-9]|110[1-9]\d|11[1-9]\d{2}|1[2-9]\d{3}|[2-5]\d{4}|6[0-7]\d{3})|(?:6800[1-9]|680[1-9]\d|68[1-9]\d{2}|69\d{3}|[7-9]\d{4}))$

正在观看

 ^ 
 (?:
      0 \d{4} 
   |  (?:
           1000 [1-9] 
        |  100 [1-9] \d 
        |  10 [1-9] \d{2} 
      )
   |  (?:
           1100 [1-9] 
        |  110 [1-9] \d 
        |  11 [1-9] \d{2} 
        |  1 [2-9] \d{3} 
        |  [2-5] \d{4} 
        |  6 [0-7] \d{3} 
      )
   |  (?:
           6800 [1-9] 
        |  680 [1-9] \d 
        |  68 [1-9] \d{2} 
        |  69 \d{3} 
        |  [7-9] \d{4} 
      )
 )
 $