How do I use Java Regex to find all repeating character sequences in a string?

java, pattern-matching, regex

Solution

This does it:

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());
        }
    }
}

OUTPUT:

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

Problem

Parsing a random string looking for repeating sequences using Java and Regex. Consider strings: aaabbaaacccbb I'd like to find a regular expression that will find all the matches in the above string: ``` aaabbaaacccbb ^^^ ^^^ aaabbaaacccbb ^^ ^^ ``` What is the regex expression that will check a string for any repeating sequences of characters and return the groups of those repeating characters such that group 1 = aaa and group 2 = bb. Also note that I've used an example string but any repeating characters are valid: RonRonJoeJoe ... ... ,, ,,...,,

Original source