java - 如何使用 Java Regex 查找字符串中所有重复的字符序列?

标签 java regex pattern-matching

使用 Java 和 Regex 解析随机字符串以查找重复序列。

考虑字符串:

aaabbaaacccbb

我想找到一个正则表达式来找到上面字符串中的所有匹配项:

aaabbaaacccbb
^^^  ^^^

aaabbaaacccbb
   ^^      ^^

什么是正则表达式,它将检查字符串中是否有任何重复的字符序列,并返回这些重复字符的组,例如第 1 组 = aaa 和第 2 组 = bb。另请注意,我使用了一个示例字符串,但任何重复字符都是有效的: 罗恩乔乔 ……、、、、……、、

最佳答案

这样做:

import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class Test {
    public static void main(String[] args) {
        String s = "aaabbaaacccbb";
        find(s);
        String s1 = "RonRonRonJoeJoe .... ,,,,";
        find(s1);
        System.err.println("---");
        String s2 = "RonBobRonJoe";
        find(s2);
    }

    private static void find(String s) {
        Matcher m = Pattern.compile("(.+)\\1+").matcher(s);
        while (m.find()) {
            System.err.println(m.group());
        }
    }
}

输出:

aaa
bb
aaa
ccc
bb
RonRonRon
JoeJoe
....
,,,,
---

关于java - 如何使用 Java Regex 查找字符串中所有重复的字符序列?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10287685/

相关文章:

java - 如何在 WAR 项目中从 JNDI 正确引用带注释的 EJB3 bean

java - 正则表达式在intellij idea中编译,但不在android studio中编译并显示

regex - Windows 相当于 grep -B(上下文之前)和 -A(上下文之后)?

inet addr 的正则表达式失败

wpf - 将使用 backgroundworker 的方法替换为 async/tpl (.NET 4.0)

java - 将字符串输出到系统输出的最快方法是什么?

java - 如何在 ubuntu 中设置环境变量 ANT_OPTS?

c++ - 在各种语言中表示模式的方法

java - 如何显示Ant构建的进度?

list - 模式匹配如何与列表一起使用