2019-06-16 java学习日记

正则表达式的分组功能:

捕获组可以通过从左到右计算其开括号来编号.

例如,在表达式( ( A ) ( B ( C ) ) )中,存在四个这样的组:

  ( ( A ) ( B ( C ) ) )

  (A

  (B(C))

  (C)

组零始终代表整个表达式

案例

1,:切割
需求:请按照叠词切割: "sdqqfgkkkhjppppkl";
2:替换
需求:我我....我...我.要...要要...要学....学学..学.编..编编.编.程.程.程..程
将字符串还原成:“我要学编程”。

 1 public static void main(String[] args) {
 2         //demo1();
 3         //demo2();
 4 
 5         String s = "我我....我...我.要...要要...要学....学学..学.编..编编.编.程.程.程..程";
 6         String s2 = s.replaceAll("\\.+", "");
 7         String s3 = s2.replaceAll("(.)\\1+", "$1");    
 8          //$1代表第一组中的内容
 9         System.out.println(s3);
10     }
11 
12     public static void demo2() {
13         //需求:请按照叠词切割: "sdqqfgkkkhjppppkl";
14         String s = "sdqqfgkkkhjppppkl";
15         String regex = "(.)\\1+";                
16     //+代表第一组出现一次到多次
17         String[] arr = s.split(regex);
18         
19         for (int i = 0; i < arr.length; i++) {
20             System.out.println(arr[i]);
21         }
22     }
23 
24     public static void demo1() {
25         //叠词 快快乐乐,高高兴兴
26         /*String regex = "(.)\\1(.)\\2";            
27         //\\1代表第一组又出现一次    
28                 //\\2代表第二组又出现一次
29         System.out.println("快快乐乐".matches(regex));
30         System.out.println("快乐乐乐".matches(regex));
31         System.out.println("高高兴兴".matches(regex));
32         System.out.println("死啦死啦".matches(regex));*/
33         
34         //叠词 死啦死啦,高兴高兴
35         String regex2 = "(..)\\1";
36         System.out.println("死啦死啦".matches(regex2));
37         System.out.println("高兴高兴".matches(regex2));
38         System.out.println("快快乐乐".matches(regex2));
39     }

 

 

 

Pattern和Matcher

模式和匹配器的典型调用顺序

  Pattern p = Pattern.compile("a * b");

  Matcher m = p.mather("aaaaab");

  boolean b = m.matches()

 

 

正则表达式的获取功能

 1 public static void main(String[] args) {
 2         //demo1();
 3         String s1="我的手机号是15919112777.曾静用过13672652000,还用过13570659111";
 4         String regex="1[91911]\\d{9}";  //手机号码的正则表达式
 5         Pattern p = Pattern.compile(regex);
 6         Matcher m = p.matcher(s1);
 7 //        boolean b=m.find();    
 8 //        String s2=m.group();
 9         while (m.find()) {
10             System.out.println(m.group());
11             
12         }
13         
14     }
15 
16     public static void demo1() {
17         Pattern p = Pattern.compile("a*b");
18         Matcher m = p.matcher("aaaaab");
19         boolean b = m.matches();
20         System.out.println(b);
21         
22     }

 

 

 

 

 

 

posted @ 2019-06-16 22:07  白河ia  阅读(156)  评论(0编辑  收藏  举报