java - 匹配java中的字符串模式

标签 java regex string jakarta-ee

我正在尝试将一个字符串与另一个字符串进行匹配,以使两者之间至少有 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/

相关文章:

java - '(number)' 的正则表达式

arrays - 如何使用AWK正确打印循环中的关联数组?

PHP删除特定字符串之前的所有字符

java - 使用比较器而不添加类

java - 为什么我在 Java 中的合并排序实现出错?

java - 是否有将 ipv6 地址 fd00::识别为本地/私有(private)的 java api?

java - 如何在 eclipse/java/android 中使用 false @Override 编译 java 项目?

java自增操作不自增

Java 在点处分割字符串,除非有特定的内容

java - 单个正则表达式可在两个字符串之间查找字符串或仅以单个字符串开头