英国注册号

时间:2015-06-17 09:39:25

标签: regex

我一直在为英国注册号码创建正则表达式,但在限制相关字符串的总长度方面遇到了障碍。我目前有以下内容:

^(([a-zA-Z]?){1,3}(\d){1,3}([a-zA-Z]?){1,3})

这允许一个1到3个字符之间的可选字符串(小写或大写),后跟1到3个字符之间的强制数字,最后是1到3之间的强制字符串(小写或大写)字符。

这样可以正常工作,但我想在整个字符串中应用最大长度为7个字符,但这就是我失败的地方。我尝试在正则表达式的末尾添加一个1,7限制,但是三个1,3检查正在取代它,因此允许最大长度为9个字符。

需要通过的注册号的示例如下:

  • A1
  • AAA111
  • AA11AAA
  • A1AAA
  • A11AAA
  • A111AAA

在上面的例子中,A代表任何字母,大写或小写,1代表任何数字。最大长度是唯一似乎不起作用的限制。我禁用了空格的输入,因此可以假设它们从不存在于字符串中。

1 个答案:

答案 0 :(得分:1)

如果您知道自己的长度,我建议您使用某些语言为字符串长度公开的.length属性。如果这不是一个选项,您可以尝试使用类似的内容:^(?=.{1,7})(([a-zA-Z]?){1,3}(\d){1,3}([a-zA-Z]?){1,3})$,示例here

相关问题