在 Java Regex 中捕獲組和反向引用
捕獲組是一種將多個字元視為一個整體的方式。透過將要分組的字元放在一對括號內來建立它們。例如,正則表示式 (dog) 建立了一個包含字母“d”、“o”和“g”的單組。
捕獲組的編號是根據它們從左到右的左括號記數。
例如,在表示式 ((A)(B(C))) 中,有四個這樣的組 -
- ((A)(B(C)))
- (A)
- (B(C))
- (C)
反向引用允許透過使用像 \# 這樣的數字重複捕獲組,其中 # 是組號。
請看下面的示例 −
示例
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class Tester {
public static void main(String[] args) {
//2 followed by 2 five times
String test = "222222";
String pattern = "(\d\d\d\d\d)";
Pattern r = Pattern.compile(pattern);
Matcher m = r.matcher(test);
if (m.find( )) {
System.out.println("Matched!");
}else {
System.out.println("not matched!");
}
//\1 as back reference to capturing group (\d)
pattern = "(\d)\1{5}";
r = Pattern.compile(pattern);
m = r.matcher(test);
if (m.find( )) {
System.out.println("Matched!");
}else {
System.out.println("not matched!");
}
}
}輸出
Matched! Matched!
廣告
資料結構
網路
RDBMS
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP