首页 > 解决方案 > 正则表达式前三个字符,然后只有数字或字符,可选地后跟两位数字

问题描述

我正在尝试创建一个正则表达式,它将在开头匹配前三个字符,然后是数字或字符,后跟(可选)一个字符,后跟两个数字。最大长度为 25。

BER12345 - match
BER123456A10 - match

我的尝试:^(?=[A-Z]{3,25}$)[A-Z0-9]{5,20}[0-9]{0,2]$

标签: regexvba

解决方案


这应该可以解决问题:

(^[A-Z]{3}[A-Z0-9]{1,19}[A-Z0-9]\d{2}$)|(^[A-Z]{3}[A-Z0-9]{1,22}$) 正则表达式101

BER - no match (desn't have digits or chars after begining)
BER456 - match
BER12345 - match
BER123456A10 - match
BER12345678910dasdd123 - no match (lowercase)
BER1234567890123456789123 - match (only numbers) 
BER1234S67890AFF456789123 - match (uppercase) 
BER1234S67890AFF4567891DA - match (with letters at the end) 
BER12345678989A10dasdd123 - no match (lowercase)
BER1234S67890AFF456789123A - no match (max size)
BER1234567890123456789A10AAA123 - no match (max size)

如果您想仅使用 3 个字符匹配上面的第一个示例BER,只需将{1,19}and更改{1,22}{0,19}and{0,22}


推荐阅读