Java-Pattern类和Matcher类快速掌握

前言

pattern (模式) 与 matcher (匹配) 都属于java.util.regex包下,搭配使用实现对字符序列的检索和正则表达式匹配。

Pattern类

1、compile(String regex)

使用正则表达式regex做参数得到一个称为模式的Pattern类的实例对象

 public static void main(String[] args) {
        //正则表达式 匹配一个0-9数字
        String regex = "\\d";
        //测试文本
        String testStr = "1h2k3h2uada7s66eys7";
        //使用regex做参数,得到一个称为模式的Pattern类的实例对象
        Pattern pattern = Pattern.compile(regex);
    }

matches(String regex, CharSequence input)

判断文本是否被正则表达式全匹配

public static void main(String[] args) {
        //正则表达式 匹配一个0-9数字
        String regex = "\\d";
        //输入文本
        String input= "6";
        //判断文本是否被正则表达式全匹配 返回true
        System.out.println(Pattern.matches(regex, input));
    }

Matcher类

public boolean find()

循环判断是否能匹配下一个子序列

寻找 input(输入的字符串序列) 和 regex(正则表达式) 匹配的下一子序列,成功返回 true

搭配使用:

        调用 start() 方法和 end() 方法:获取该子字符序列的开始位置和结束位置
        调用 group() 方法:返回本次检索到的匹配模式的子字符序列

public boolean find(int start)

判断 input 从参数 start 指定位置开始是否有和 regex 匹配的子字符序列

public boolean lookingAt()

判断从 input 的开始位置是否有和 regex 匹配的子字符序列

public boolean matches()

判断 input 是否完全和 regex 匹配

public String replaceAll(String replacement)

返回一个将匹配模式的子字符序列全部替换为replacement指定的字符序列的字符串

注意:replacement本身不受影响

public String replacFirst(String replacement)

返回一个将第一个匹配到的子字符序列替换为replacement字符序列的字符串

代码演示

public static void main(String[] args) {
        String regex = "\\d";//0-9数字
        String input = "测试长文本1h2k3h2uada7s66eys7";
        Pattern pattern = Pattern.compile(regex);
        Matcher matcher = pattern.matcher(input);
        /**
         * find(int start) 查找是否存在匹配
         */
        while (matcher.find()){
            System.out.println(matcher.group());
        }
        //将测试文本中的数字全改为6
        System.out.println(matcher.replaceAll("6"));
        //将测试文本中的第一个数字改为6
        System.out.println(matcher.replaceFirst("6"));
    }

输出

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值