使用
Java和Regex解析一个随机字符串寻找重复序列.
考虑字符串:
aaabbaaacccbb
我想找到一个正则表达式,可以找到上述字符串中的所有匹配项:
aaabbaaacccbb ^^^ ^^^ aaabbaaacccbb ^^ ^^
什么是regex表达式,将检查字符串的任何重复的字符序列,并返回这些重复字符的组,使组1 = aaa和组2 = bb.还要注意,我使用了一个示例字符串,但任何重复的字符都是有效的:
RonRonJoeJoe
… …,…
解决方法
这样做:
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 ....,---