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