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);
</span><span class="com">//获取匹配器对象</span><span class="pln">
</span><span class="typ">Matcher</span><span class="pln"> matcher </span><span class="pun">=</span><span class="pln"> pattern</span><span class="pun">.</span><span class="pln">matcher</span><span class="pun">(</span><span class="pln">INPUT</span><span class="pun">);</span><span class="pln">
</span><span class="kwd">while</span><span class="pun">(</span><span class="pln">matcher</span><span class="pun">.</span><span class="pln">find</span><span class="pun">())</span><span class="pln"> </span><span class="pun">{</span><span class="pln">
</span><span class="com">//打印给定组捕获的子序列的开始索引。</span><span class="pln">
</span><span class="typ">System</span><span class="pun">.</span><span class="kwd">out</span><span class="pun">.</span><span class="pln">println</span><span class="pun">(</span><span class="str">"Second Capturing Group, (foo) Match String start(): "</span><span class="pun">+</span><span class="pln">matcher</span><span class="pun">.</span><span class="pln">start</span><span class="pun">(</span><span class="lit">1</span><span class="pun">));</span><span class="pln">
</span><span class="pun">}</span><span class="pln">
matcher</span><span class="pun">.</span><span class="pln">reset</span><span class="pun">();</span><span class="pln">
matcher</span><span class="pun">.</span><span class="pln">usePattern</span><span class="pun">(</span><span class="typ">Pattern</span><span class="pun">.</span><span class="pln">compile</span><span class="pun">(</span><span class="str">"(a*b)(foob)"</span><span class="pun">));</span><span class="pln">
</span><span class="kwd">while</span><span class="pun">(</span><span class="pln">matcher</span><span class="pun">.</span><span class="pln">find</span><span class="pun">())</span><span class="pln"> </span><span class="pun">{</span><span class="pln">
</span><span class="com">//打印给定组捕获的子序列的开始索引。</span><span class="pln">
</span><span class="typ">System</span><span class="pun">.</span><span class="kwd">out</span><span class="pun">.</span><span class="pln">println</span><span class="pun">(</span><span class="str">"Second Capturing Group, (fooab) Match String start(): "</span><span class="pun">+</span><span class="pln">matcher</span><span class="pun">.</span><span class="pln">start</span><span class="pun">(</span><span class="lit">1</span><span class="pun">));</span><span class="pln">
</span><span class="pun">}</span><span class="pln">
}
}
让无涯教程编译并运行以上程序,这将产生以下输出-
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