具有特定1位字母和数字的3位数代码的正则表达式逻辑

时间:2016-11-29 17:06:57

标签: regex

我需要帮助来为以下条件编写正则表达式的逻辑。用户键控代码应该

最多3个字节 第一个字节可以有alpha(特别是A,B,P)或全部3个数字 第二&第3个字节必须是数字
不允许使用特殊字符。

Examples, 
A23      - match
B45      - match
P71      - match
A3       - match
418      - match
91       - match            

C23      - not match
AC2      - not match
D3       - not match

我尝试了表达,但没有运气。逻辑是

alphaNumericRegExp =/[A,B,P][0-9]{3}/

Matcher matcher = mask.matcher(service.getRacprCd1());
Matcher matcher1=digitPattern.matcher(service.getRacprCd1());

if (!matcher.matches()) {
    vectErrMsgs.add("Pr code  is not valid. " );          
}

1 个答案:

答案 0 :(得分:0)

将其拆分为逻辑部分。第一个字符可以是A,B,P,一个数字,或者(如果我理解正确)没有。因此:

[ABP\d]?

然后需要1或2位数。

\d{1,2}

所以一起,

^[ABP\d]?\d{1,2}$

一个问题,这允许一个数字。如果允许的话,我无法从你的问题中说出来。如果代码必须至少为2个字符,请删除?