可以使用java.util.regex.Matcher.reset()方法重置Matcher。此方法返回重置的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("\nThe 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("\nThe Matcher is reset");
while (m.find()) {
System.out.println(m.group());
}