java14-4 Pattern和Matcher类的使用



   获取功能
    Pattern和Matcher类的使用
      模式和匹配器的基本使用顺序

 1 import java.util.regex.Matcher;
 2 import java.util.regex.Pattern;
 3 
 4 public class RegexDemo {
 5 public static void main(String[] args) {
 6 // 模式和匹配器的典型调用顺序
 7 // 把正则表达式编译成模式对象
 8 Pattern p = Pattern.compile("a*b");
 9 // 通过模式对象得到匹配器对象,这个时候需要的是被匹配的字符串,字符串跟上面的正则表达式一致
10 Matcher m = p.matcher("aaaaab");
11 // 调用匹配器对象的功能
12 boolean b = m.matches();
13 System.out.println(b);
14 
15 //这个是判断功能,但是如果做判断,这样做就有点麻烦了,我们直接用字符串的方法做
16 String s = "aaaaab";
17 String regex = "a*b";
18 boolean bb = s.matches(regex);
19 System.out.println(bb);
20 
21 //判断功能的再次简化
22 String str = "abbbbbb";
23 boolean cc = str.matches("ab*");
24 System.out.println(cc);
25 }
26 }

 

需求:键盘输入内容,但只显示3位的字符
  分析:
    A:创建键盘输入
    B:定义规则,把规则编译成模式对象,再通过模式对象得到匹配对象
        a:把正则表达式编译成模式对象 Pattern p = Pattern.compile("a*b");
        b:通过模式对象得到匹配器对象,这个时候需要的是被匹配的字符串,字符串跟上面的正则表达式一致 Matcher m = p.matcher("aaaaab");
    C:调用匹配器的find方法查找有没有满足条件的子串,public boolean find()
    D:返回这个对象, public boolean group()返回匹配的对象
    E:输出对象
  方法:
    a:返回值:void
    b:参数列表:String

 1 import java.util.Scanner;
 2 import java.util.regex.Matcher;
 3 import java.util.regex.Pattern;
 4 public class PattenTest {
 5 
 6 public static void main(String[] args) {
 7 //创建键盘录入
 8 Scanner sc = new Scanner(System.in);
 9 System.out.println("输入内容:");
10 String str = sc.nextLine();
11 //调用方法
12 group(str);
13 
14 }
15 
16 //定义方法
17 public static void group(String str){
18 //定义规则    
19 //把正则表达式编译成模式对象 Pattern p = Pattern.compile("a*b");
20 Pattern p = Pattern.compile("\\b\\w{3}\\b");
21 
22 //通过模式对象得到匹配对象 Matcher m = p.matcher("aaaaab");
23 Matcher m = p.matcher(str);
24 
25 /* 这个只能判断第一个元素,注释掉
26 //调用匹配器的find方法查找有没有满足条件的子串,public boolean find()
27 boolean b = m.find();
28 
29 //返回查找到的对象 public boolean group()返回匹配的对象
30 String result = m.group();
31 System.out.println(result);
32 */
33 
34 while(m.find()){
35 System.out.println(m.group());
36 }
37 
38 
39 // 注意:一定要先find(),然后才能group();否则会出现下面这个错误
40 // IllegalStateException: No match found
41 // String ss = m.group();
42 // System.out.println(ss);
43 }
44 }

 

posted @ 2016-09-19 20:06  卡拉瓦  阅读(192)  评论(0编辑  收藏  举报