抱歉不熟悉编程。显然我希望在发布之前了解有关该主题的所有内容。我这样做了3个星期,一边学习,一边学习。
我有一个限制为5个字符的字段,我正在尝试验证。第一个字符必须是字母,后面的4个字符必须是数字。在这一点上,正则表达式对我来说就像希腊语一样,所以我遇到了麻烦。我已经能够验证第一个字符了,但我对剩下的4个字符感到难过。这是我的代码:
if (carID.substring(0, 1).matches("[0-9]")) {
showDataFormatError();
break;
} else {
if (carID.substring(1, 5).matches("[a-zA-Z]")) {
showDataFormatError();
break;
}
}
此时更新以演示我可怕的编码。
if (carID.length() < 5) {
showDataLengthError();
break;
} else {
if (carID.matches("^[a-zA-Z][0-9]{4}$")) {
showDataFormatError();
break;
} else {
if (carYearString.length() < 0) {
showDateLengthError();
break;
} else {
try {
int carYear = Integer.parseInt(carYearString);
int currentYear = Calendar.getInstance().get(
Calendar.YEAR);
// etc.
答案 0 :(得分:2)
答案 1 :(得分:2)
答案 2 :(得分:1)
我会做类似的事情。
\pL Matches Any kind of letter from any language.
\pN{4} Matches Any kind of numeric character in any script. (4 times) greedy.
...
if (carID.length() > 5) throw IllegalArgumentException();
if (carID.matches("^\pL\pN{4}$")){
return true;
} else {
return false;
...
}