您好我必须编写一个与A12BC
格式匹配的正则表达式。前两个字符是A
& 1
是强制性的,接下来的3个字符为2
,B
& C
是可选的。目前,如果我将字符串值设为A12BC
,则我的regEx有效。
当我将输入设为A1B
时,它应该不匹配,但我的正则表达式匹配并给出结果为susses。任何人都可以帮助我并修改我的RegExp
它表现如下:
我的正则表达式如下:
^[a-zA-Z][0-9][0-9]?[a-zA-Z]?[a-zA-Z]?$
答案 0 :(得分:0)
要确保第三个字符(如果存在)是一个数字,请在可选组中强制使用第三个字符,如下所示:
^[a-zA-Z][0-9]([0-9][a-zA-Z]?[a-zA-Z]?)?$
此表达式表示如果存在第三个字符,则需要匹配一个数字。两个尾随字母也是可选的。
注意:您可以使用预定义的Character Classes \w
表示字母,\d
表示数字,从而简化表达。请记住,你需要加倍反斜杠才能在" plain"字符串文字(与逐字字符串文字相对,反斜杠不加倍)。
答案 1 :(得分:0)
您可以使用:
^[a-zA-Z][0-9](?:[0-9][a-zA-Z]{0,2})?$
在2BC
模式中,您必须在允许零,一或两个字母之前强制使用数字。
(?:[0-9][a-zA-Z]{0,2})?
匹配空字符串,数字或数字后跟字母,或数字后跟两个字母,但不单个字母。
(?:...)
是非捕获组,请参阅demo here。