我需要帮助来为以下条件编写正则表达式的逻辑。用户键控代码应该
最多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. " );
}
答案 0 :(得分:0)
将其拆分为逻辑部分。第一个字符可以是A,B,P,一个数字,或者(如果我理解正确)没有。因此:
[ABP\d]?
然后需要1或2位数。
\d{1,2}
所以一起,
^[ABP\d]?\d{1,2}$
一个问题,这允许一个数字。如果允许的话,我无法从你的问题中说出来。如果代码必须至少为2个字符,请删除?