[英]Identifying capture groups in a Regex Pattern
Java中是否有一種方法(可能還有一個額外的開源庫)來識別java.util.regex.Pattern
的捕獲組(即在創建Matcher之前)
Java文檔中的示例:
捕獲組通過從左到右計算它們的左括號來編號。 在表達式((A)(B(C)))中,例如,有四個這樣的組:
1 ((A)(B(C))) 2 (A) 3 (B(C)) 4 (C)
原則上應該可以從(編譯的)模式中識別這些。
更新:從@Leniel和eslewhere看來,這個工具(“命名組”)將在2011年中期出現在Java 7中。如果我不能等待,我可以使用jregex雖然我不太確定API是什么是。
您可以通過創建虛擬匹配器來查找組的數量 ,如下所示:
Pattern p = Pattern.compile("((A)(B(C)))");
System.out.println(p.matcher("").groupCount());
如果你想要實際的子表達式( ((A)(B(C)))
, (A)
等),那么不,該信息不可用。
是。 檢查一下:
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.