1 public class Test {
2
3 public static void main(String[] args) {
4
5 String str = "abcdabababbbbb";
6 String regEx1 = "(a(b))cd\\1+\\2{4}"; //表示第一组"(ab)出现一次以上,第二组"(b)"出现四次
7 boolean b = str.matches(regEx1);
8 System.out.println(b);//true
9
10 String str2 = "aaabbbbbbbccaaaaddddddddddddd";
11 String regEx2 = "(.)\\1+"; //表示任意字符(除"\n"外)练习出现一次以上
12 String ss = str.replaceAll(regEx2, "$1"); //将连续重复的字符替换第一个字符
13 System.out.println(ss); //"abcdababab"
14
15 //将字符串str3转换成 "我爱编程"
16 String str3 = "我..我....我...我......爱..爱...爱.....爱...编.....编....编..编....程....程...程....程!";
17 //方法一
18 //(?=X) X,通过零宽度的正lookahead,表示不理解
19 String regEx3 = "(.)(?=.*\\1)";
20 String a = str3.replaceAll (regEx3,"");
21 System.out.println (a); //我爱编.程!
22 // "\\p{Punct}"表示匹配 标点符号:!"#$%&'()*+,-./:;<=>?@[\]^_`{|}~
23 System.out.println (a.replaceAll ("\\p{Punct}",""));//我爱编程
24
25 //方法二
26 str3 = str3.replaceAll("(我\\.+)+(爱\\.+)+(编\\.+)+(程\\.+)+(程\\!+)","我爱编程");
27 System.out.println (str3); //我爱编程
28
29 //方法三
30 str3 = str3.replaceAll ("[.!]","")
31 .replaceAll ("(.)\\1+","$1");
32 System.out.println (str3); //我爱编程
33 }
34 }