我需要一个正则表达式来验证欧盟增值税号码。有一些,但它们都是每个成员国特定的,我不需要它如此具体。所以需要用户输入一定长度的字符,其中第一个字符必须是字母,并且允许使用某些字母的休息数字就足够了。
所以基本上我需要匹配以下
到目前为止,我有以下内容,哪种方式可以胜任,但遗憾的是还只使用字母匹配输入(ABCDEFGHIJKLMNOP)link
([A-Za-z]{2,4})([a-zA-Z0-9\-\_ ]{2,12})
您可以在此处查看所有增值税号码的格式。 https://www.gov.uk/guidance/vat-eu-country-codes-vat-numbers-and-vat-in-other-languages
答案 0 :(得分:1)
您可以使用
^[A-Za-z]{2,4}(?=.{2,12}$)[-_\s0-9]*(?:[a-zA-Z][-_\s0-9]*){0,2}$
请参阅regex demo
<强>详情
^
- 字符串开头[A-Za-z]{2,4}
- 2到4个ASCII字母(?=.{2,12}$)
- 然后,字符串的末尾必须有2到12个字符(字符串的数量并不重要,我们只是在这里查看其余字符串的长度)[-_\s0-9]*
- 零个或多个数字,-
,_
或空白(?:[a-zA-Z][-_ 0-9]*){0,2}
- 0到2个连续序列:
[a-zA-Z]
- ASCII字母[-_\s0-9]*
- 零个或多个数字,-
,_
或空白$
- 字符串结束,答案 1 :(得分:1)
有一个python模块来验证增值税号。它内部有一系列正则表达式。我个人一直在使用它,它非常准确。你可能想看看:https://pypi.org/project/vatnumber/