java - 出现检查的正则表达式问题 :

标签 java regex

检查数字 n 是否在字符串中出现 n 次且连续出现。

例如: 字符串 x =“33322” 情况 1:如果 int N = 3;

检查“33322”中3是否连续出现3次。

这里 3 在“33322”中连续出现 3 次。因此,我们返回 true。

情况 2:如果 int N = 2;

检查“33322”中2是否连续出现2次。

这里 2 在“33322”中连续出现了 2 次。因此,我们返回 true。

我尝试过各种正则表达式,但可能是因为不是很彻底,我不清楚什么表达式可以帮助我完成这项任务。我尝试过给定的正则表达式模式 : "^["+N+"]{"+(N-1)+"}("+N+")$"。

但是对于这个输出是假的,而它应该是真的,因为你可以看到数字 3 在上面的例子中明显出现了 3 次。

在这里,我正在寻找一个可以与 N 的所有可能值匹配的正则表达式。

N 可以是 2-500

最佳答案

使用正则表达式.*(N){N}.*当使用matchesString的方法类或 (N){N}使用 find 时的正则表达式方法Matcher 。 N 是您要查找的数字。

编辑:添加了一个 Java 示例:

public static void main(String[] args) {
    String s = "abc10101010101010101010xyz";
    System.out.println(checkOccurrence(s, 10)); // true
    s = "abc33322xyz";
    System.out.println(checkOccurrence(s, 3)); // true
    System.out.println(checkOccurrence(s, 2)); // true
}

private static boolean checkOccurrence(String text, int number) {
    Pattern p = Pattern.compile("(" + number + "){" + number + "}");
    Matcher m = p.matcher(text);
    return m.find();
}

关于java - 出现检查的正则表达式问题 :,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58467757/

相关文章:

android - 密码验证应接受特殊字符、数字、字符,但不接受空格

javascript - 正则表达式 - 匹配字符而不是数字

python - Python 中的参数化正则表达式

regex - CPP 指令 #ifdef 正则表达式解决方案

java - 安卓 : Change image when user clicks and set it to original afterwards

java - Camel 航线需要很长时间才能优雅地关闭

java - Android:运行一个空方法会产生多少开销?

java - 颜色检测后发生事件

Javascript 验证最多允许 3 个逗号

java - 方法声明中参数声明之前的 final 关键字