使用 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());
}

更新于:30-7-2019

112 次浏览

开启你的职业生涯

学完本课程获得认证

开始
广告