簡體   English   中英

識別正則表達式模式中的捕獲組

[英]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)等),那么不,該信息不可用。

是。 檢查一下:

Java中的正則表達式命名組

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM