使用 Java 正则表达式中的 Matcher.end() 方法
方法 java.util.regex.Matcher.end() 会根据正则表达式返回与序列匹配的最后一个字符后的偏移值。该方法不需要任何参数。如果没有匹配发生或者匹配操作失败,那么会抛出 IllegalStateException。
如下给出的程序展示了 Java 正则表达式中的 Matcher.end() 方法:
示例
import java.util.regex.Matcher; import java.util.regex.Pattern; public class Demo { public static void main(String args[]) { Pattern p = Pattern.compile("(a*b)"); Matcher m = p.matcher("caaabccaab"); System.out.println("The input string is: caaabccaab"); System.out.println("The Regex is: (a*b)"); System.out.println(); while (m.find()) { System.out.println("Index: " + m.end()); } } }
输出
The input string is: caaabccaab The Regex is: (a*b) Index: 5 Index: 10
现在我们了解一下上面的程序。
在字符串序列“caaabccaab”中搜索子序列“(a*b)”。find() 方法用于查找输入序列中是否存在子序列,并且使用 end() 方法打印与最后一个字符匹配之后的偏移值。一个演示此操作的代码如下所示:
Pattern p = Pattern.compile("(a*b)"); Matcher m = p.matcher("caaabccaab"); System.out.println("The input string is: caaabccaab"); System.out.println("The Regex is: (a*b)"); System.out.println(); while(m.find()) { System.out.println("Index: " + m.end()); }
广告