4

Javaで(おそらく追加のオープンソースライブラリを使用して)キャプチャグループを識別する方法はありますかjava.util.regex.Pattern(つまり、マッチャーを作成する前に)

Javaドキュメントの例:

キャプチャグループは、左から右に開き括弧を数えることによって番号が付けられます。たとえば、式((A)(B(C)))には、次の4つのグループがあります。

1         ((A)(B(C)))
2         (A)
3         (B(C))
4         (C)

原則として、(コンパイルされた)パターンからこれらを識別できるはずです。

更新:@Lenielとeslewhereから、この機能(「名前付きグループ」)は2011年半ばにJava 7に存在するようです。それを待つことができない場合は、APIが何であるかはよくわかりませんが、jregexを使用できます。は。

4

2 に答える 2

7

次のように、ダミーのマッチャーを作成することで、グループのを確認できます。

Pattern p = Pattern.compile("((A)(B(C)))");
System.out.println(p.matcher("").groupCount());

実際の部分式(、など)が必要な場合((A)(B(C)))(A)、いいえ、その情報は利用できません。

于 2011-01-04T01:29:50.137 に答える
2

はい。これをチェックして:

Javaの正規表現名前付きグループ

于 2011-01-04T00:30:27.823 に答える