gpt4 book ai didi

regex - 用于验证英国国民保险号的正则表达式

转载 作者:行者123 更新时间:2023-12-03 12:21:28 28 4
gpt4 key购买 nike

我有以下正则表达式来验证英国国民保险号

^([a-zA-Z]){2}( )?([0-9]){2}( )?([0-9]){2}( )?([0-9]){2}( )?([a-zA-Z]){1}?$

接受的值为:
AB 12 34 56 A

AB123456A

我希望也接受这个值。任何人都可以帮我解决这个问题吗?
AB 123456 A

AB 123 456 A

AB 1 2345 6 A

AB 12 34 56 A (multiple space anywhere)

即使字符串中有多余或没有空格,RE 也应该工作。这可以在 RE 中做到吗?先感谢您。

最佳答案

编辑 :Andrew Bauer 修改了我的答案,添加了对我回答时未知的允许/禁止字符的检查。您应该对他的答案投赞成票,因为它更完整并且显然执行更好的验证。

如果您不能先​​删除所有空格,则应该可以:

^\s*[a-zA-Z]{2}(?:\s*\d\s*){6}[a-zA-Z]?\s*$

解释:
^                 # beginning of string
\s* # optional leading whitespace
[a-zA-Z]{2} # match two letters
(?:\s*\d\s*){6} # six digits, with optional whitespace leading/trailing
[a-zA-Z]? # zero or one letter
\s* # optional trailing whitespace (just in case)
$ # end of string

关于regex - 用于验证英国国民保险号的正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10204378/

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