Java 正则 中的 Matcher usePattern函

首页 / 正则入门教程 / Java 正则 中的 Matcher usePattern函

java.util.regex.Matcher.usePattern(Pattern newPattern)方法更改此Matcher用于查找匹配项的模式。

Matcher usePattern - 声明

public Matcher usePattern(Pattern newPattern)
  • newPattern   -  此匹配器使用的新模式。

Matcher usePattern - 返回值

这个匹配器。

无涯教程网

Matcher usePattern - 异常

  • IllegalArgumentException   -  如果newPattern为null。

Matcher usePattern - 示例

下面的示例显示java.util.regex.Matcher.usePattern(Pattern newPattern)方法的用法。

package com.learnfk;

import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class MatcherDemo {
   private static String REGEX = "(a*b)(foo)";
   private static String INPUT = "aabfooaabfooabfoob";

   public static void main(String[] args) {
      //创建一个模式
      Pattern pattern = Pattern.compile(REGEX);
      
      //获取匹配器对象
      Matcher matcher = pattern.matcher(INPUT); 
      
      while(matcher.find()) {
         //打印给定组捕获的子序列的开始索引。
         System.out.println("Second Capturing Group, (foo) Match String start(): "+matcher.start(1));
      }  
      matcher.reset();
      matcher.usePattern(Pattern.compile("(a*b)(foob)"));
      
      while(matcher.find()) {
         //打印给定组捕获的子序列的开始索引。
         System.out.println("Second Capturing Group, (fooab) Match String start(): "+matcher.start(1));
      }  
   }
}

让无涯教程编译并运行以上程序,这将产生以下输出-

Second Capturing Group, (foo) Match String start(): 0
Second Capturing Group, (foo) Match String start(): 6
Second Capturing Group, (foo) Match String start(): 12
Second Capturing Group, (fooab) Match String start(): 12

祝学习愉快!(内容编辑有误?请选中要编辑内容 -> 右键 -> 修改 -> 提交!)

技术教程推荐

微服务架构实战160讲 -〔杨波〕

安全攻防技能30讲 -〔何为舟〕

Linux内核技术实战课 -〔邵亚方〕

物联网开发实战 -〔郭朝斌〕

郭东白的架构课 -〔郭东白〕

快手 · 移动端音视频开发实战 -〔展晓凯〕

超级访谈:对话毕玄 -〔毕玄〕

LangChain 实战课 -〔黄佳〕

程序员职业规划手册 -〔雪梅〕

好记忆不如烂笔头。留下您的足迹吧 :)