zoukankan      html  css  js  c++  java
  • 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 }
    何事都只需坚持.. 难? 维熟尔。 LZL的自学历程...只需坚持
  • 相关阅读:
    从温设计模式
    php pdf转图片
    PHP 微服务集群搭建
    死磕nginx系列--nginx 限流配置
    分别
    一生悲哀
    三十男人的思考
    test markdown
    linux 系统内核空间与用户空间通信的实现与分析<转>
    ue4 SNew补遗
  • 原文地址:https://www.cnblogs.com/LZL-student/p/5886461.html
Copyright © 2011-2022 走看看