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