Java 正则表达式中的 Matcher 重置


Matcher 可使用 java.util.regex.Matcher.reset() 方法进行重置。此方法返回重置后的 Matcher。

以下程序展示了 Java 正则表达式中的方法 Matcher.reset()

示例

 在线演示

import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class MainClass {
   public static void main(String args[]) {
      Pattern p = Pattern.compile("(a*b)");
      Matcher m = p.matcher("caaabcccab");
      System.out.println("The input string is: caaabcccab");
      System.out.println("The Regex is: (a*b)");
      System.out.println();
      while (m.find()) {
         System.out.println(m.group());
      }
      m.reset();
      System.out.println("
The Matcher is reset");       while (m.find()) {          System.out.println(m.group());       }    } }

输出

The input string is: caaabcccab
The Regex is: (a*b)
aaab
ab
The Matcher is reset
aaab
ab

现在让我们来了解一下上面的程序。

在字符串序列 "caaabcccab" 中搜索子序列“(a*b)”。然后使用 find() 方法查找子序列是否在输入序列中,并打印所需结果。使用 Matcher.reset() 方法重置 Matcher。然后再次使用 find() 方法,并打印所需结果。

演示此操作的代码片段如下

Pattern p = Pattern.compile("(a*b)");
Matcher m = p.matcher("caaabcccab");
System.out.println("The input string is: caaabcccab");
System.out.println("The Regex is: (a*b)");
System.out.println();
while (m.find()) {
   System.out.println(m.group());
}
m.reset();
System.out.println("
The Matcher is reset"); while (m.find()) {    System.out.println(m.group()); }

更新于: 30-07-2019

81 次浏览

开启你的职业生涯

完成课程以获得认证

开始
广告
© . All rights reserved.