使用 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 次瀏覽

開啟你的職業生涯

學完本課程獲得認證

開始
廣告