我正在尝试将一个字符串与另一个字符串进行匹配,以使两者之间至少有 3 个字符匹配。我的字符串的长度应为 4,全部大写,3 个字母和 0 到 10 之间的 1 个数字(不包括 0 和 10)。例如:RM5Z 我怎样才能以最简化的形式在 Java 中做到这一点?
最佳答案
要检查字符串的形式,您可以使用此 ^(?=[A-Z]*[1-9][A-Z]*$).{4}$
正则表达式
^.{4}$
将确保长度为 4^(?=[A-Z]*[1-9][A-Z]*$)
将仅接受包含 1-9 范围内可以用字母 A-Z 包围的数字的字符串<
不确定这是否是您想要检查字符串的方式,请告诉我
static boolean testStrings(String a, String b) {
if (isValid(a) && isValid(b)) {
for (int i = 0; i < 4; i++) {
a = a.replaceFirst(String.valueOf(b.charAt(i)), "");
}
return a.length() <= (4 - 3);
}else
return false;
}
static boolean isValid(String s) {
return s.matches("^(?=[A-Z]*[1-9][A-Z]*$).{4}$");
}
关于java - 匹配java中的字符串模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14898862/