2017-11-16 2 views
0

メソッド、クラス、パラメータを返す動的配列があります。たとえば:Javaでクラスを取得するための正規表現

org.junit.internal.builders.AllDefaultPossibilitiesBuilder.ignoredBuilder()---begin--->count:1 

私は正規表現を行うにはどのようにクラスorg.junit.internal.builderscount

を取得するには、正規表現を必要としますか?私はこれを試しました

(.*([.])) 

私はこれが正しいかどうかわかりません。

+0

を'? – Barmar

+0

試した正規表現のパターンの背後にあるアイデアは何ですか?あなたがしようとしているものとは相関していないようです。より具体的には、あなたのパターンは非常に一般的で、 '.'文字にのみ焦点を当てますが、あなたの入力にはそれらのいくつかがあります。なぜあなたが言及した部分をつかむだけのようなパターンを予期しますか? – CAustin

+0

あなたの持っているものは '。'の文字列です。セパレータとして使用し、最後の_two_ 'の前に一致するものを探したいとします。その中に。次に、 '--->'と ':'の間で何かをマッチさせたいかもしれません。 – JimmyB

答えて

1

あなたはクラス名ではなくパッケージ名を探しているようです。

あなたはその部分をキャプチャするために、この正規表現を使用する場合があります。

あなたの文字列に適用される
^([a-z][^.]+(?:\.[a-z][^.]*)*)\.([A-Z][^.]+)\.([\w]+\([^)]*\))[-]*([^-]+)[->]*([^:]+):([^:]*) 

グループ1:org.junit.internal.builders

グループ2:AllDefaultPossibilitiesBuilder

グループ3:ignoredBuilder()

グループ4:グループ5

を開始:

グループ6カウント:[。]あなたは `周りのキャプチャグループを持っていないのはなぜ1

関連する問題