字符串的正则表达式 - 长度为 9,第三个字符字母和剩余数字

Regex for a string - length 9, Third character letter and remaining numeric

我正在尝试创建一个 RegEx 来匹配符合以下条件的字符串

示例:

a555444
B999999

示例:

12B456789
16K456745

我的正则表达式:

^[a-zA-Z][0-9]{6}$

这是我目前所掌握的,它只处理第一种情况。请帮我构建一个正则表达式来处理这个要求。

您可以使用替代:

^([A-Za-z][0-9]{6}|[0-9]{2}[A-Za-z][0-9]{6})$

regex demo

详情

  • ^ - 字符串的开头
  • ( - 分组构造的开始(您可以在 ( 之后添加 ?: 以使其不捕获)将匹配...
    • [A-Za-z][0-9]{6} - 一个 ASCII 字母,然后是 6 位数字
    • | - 或
    • [0-9]{2}[A-Za-z][0-9]{6} - 2 位数字,1 个字母,6 位数字
  • ) - 分组结构结束
  • $ - 字符串结尾。

像这样尝试正则表达式:

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

?表示[0-9]{2}组是可选的。

因此,如果您有一个长度为 7 的字符串,则该组不存在。如果你有一个长度为 9 的字符串,这个组就存在。