正则表达式检查9个长度字符的前缀

时间:2017-11-15 18:49:20

标签: regex regex-lookarounds

我试图创建一个正则表达式

仅在类型字符串后有效

  1. 前2个字符0到9
  2. 接下来3个字符000到366然后501到866
  3. 接下来的4个字符0到9
  4. 最后x或X
  5. 所以我使用以下

    来做到这一点
    ([0-9]{2}(001|002|003|004|005|006|007... |366|501|...|866)[0-9]{4}[x|X]$)
    

    这样可以正确验证900033618x

    但这也将9001033618x视为有效的

    如何在x或X

    之前限制为9个字符的长度

    我尝试过这样做,如下面的

    (^\d[[0-9]{2}(001|002|003|004|005|006|007... |366|501|...|866)[0-9]{4}]{9}[x|X]$)
    

    但这不起作用

1 个答案:

答案 0 :(得分:1)

做你说的话:

^[0-9]{2}(?:[01][0-9][0-9]|[24]00|3(?:6[6-9]|[7-9][0-9]))[0-9]{4}[xX]$

注意:观看初始插入符^