Javaを使用して、別の正規表現を解析する正規表現を作成しようとしています。ソースの正規表現から名前付きグループを抽出したい(これらはURLでスラッシュで区切られたパラメーターを表す)。また、ソース文字列はスラッシュで開始および終了しない場合があります。
たとえば、両方のソース文字列の場合:
(?<name>john)/(?<facet>aaa/bbb/ccc/?)
と
/(?<name>john)/(?<facet>aaa/bbb/ccc/?)/
それらを名前付きグループとして抽出する正規表現が欲しいのですが:
(?<name>john)
と(?<facet>aaa/bbb/ccc/?)
私は試した :
(^|.*/)(?<param>\(\?<[^>]+>[^\)]+\))(/.*|$)
(?<name>john)
しかし、これは「param」という名前のグループとしてのみ返され、 (?<facet>aaa/bbb/ccc/?)
!!ではありません。
パーツを外す(/.*|$)
と両方が返ってきます!しかし、この終了条件で、パラメーターの後にスラッシュが続くか、行の終わりにあることを確認する必要があります...
なぜ(/.*|$)
2番目のパラメータが見つからないのか分かりますか?