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()); }
廣告