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 次瀏覽

開啟你的職業生涯

完成課程以獲得認證

開始
廣告