gpt4 book ai didi

regex - VIN 验证正则表达式

转载 作者:行者123 更新时间:2023-12-02 05:56:24 25 4
gpt4 key购买 nike

我根据 http://en.wikipedia.org/wiki/Vehicle_identification_number 编写了一个 VIN 验证正则表达式但当我尝试运行一些测试时,它不接受一些有效的 VIN 号码。

我的正则表达式:

^[A-HJ-NPR-Za-hj-npr-z\\d]{8}[\\dX][A-HJ-NPR-Za-hj-npr-z\\d]{2}\\d{6}$

VIN 号码不起作用:
1ftfw1et4bfc45903
WP0ZZZ99ZTS392124

VIN 号码有效:
19uya31581l000000
1hwa31aa5ae006086

(我认为问题出现在末尾的数字上,维基百科听起来好像它只会以 6 个数字结尾,而那个不起作用但有效的数字仅以 5 结尾)

任何纠正此问题的帮助将不胜感激!

最佳答案

我无法帮助您提供完美的 VIN 正则表达式 - 但我可以解释为什么这个正则表达式在您的 1ftfw1et4bfc45903 示例中失败:

^[A-HJ-NPR-Za-hj-npr-z\d]{8}[\dX][A-HJ-NPR-Za-hj-npr-z\d]{2}\d{6}$

说明:

  • ^[A-HJ-NPR-Za-hj-npr-z\d]{8}
    这允许 8 个字符,由任意数字和任意字母组成,IOQ 除外;它正确找到前 8 个字符:
    1ftfw1et
  • [\dX]
    这允许 1 个字符,可以是数字或大写的 X;它正确找到下一个字符:
    4
  • [A-HJ-NPR-Za-hj-npr-z\d]{2}
    这允许 2 个字符,由除 I、O 和 Q 之外的任何数字和任何字母组成;它正确找到接下来的 2 个字符:
    bf
  • \d{6}$
    这正好允许 6 位数字,这就是正则表达式失败的原因;因为最后 6 个字符不全是数字:
    c45903

关于regex - VIN 验证正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30314850/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com