使用
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 ....,---