我目前有以下正则表达式:
^GB([0-9]{9}([0-9]{3})?|[A-Z]{2}[0-9]{3})$
这适用于:
可在此处测试:https://regex101.com/r/jU980W/1
然而问题是它没有验证:
我尝试在正则表达式中添加空格指示符,但不再支持其他格式。
有没有人知道如何让这个正则表达式同时接受GB VAT编号的空格和没有空格?
提前致谢!
答案 0 :(得分:3)
^GB(?:\d{3} ?\d{4} ?\d{2}(?:\d{3})?|[A-Z]{2}\d{3})$
^
在行首处断言位置GB
按字面意思匹配(?:\d{3} ?\d{4} ?\d{2}(?:\d{3})?|[A-Z]{2}\d{3})
匹配以下任一选项
\d{3} ?\d{4} ?\d{2}(?:\d{3})?
选项1:
\d{3}
正好匹配3位数字
?
可选择匹配空格\d{4}
正好匹配4位数字
?
可选择匹配空格\d{3}
正好匹配2位数字(?:\d{3})?
可选择完全匹配3位数字[A-Z]{2}\d{3}
选项2:
[A-Z]
匹配任何大写的ASCII字母\d{3}
正好匹配3位数字$
断言行尾的位置