と の間のテキストを一致させる必要があります${
例}
:
${
このテキストを一致させる必要があります}
テキスト内に\$\\{(.+?)\\}
いくつか配置するまで、単純な正規表現は正常に機能します}
中括弧は、一致するテキスト内でペアになっています。
正規表現を使用してこれを解決する可能性はありますか?
正規表現の末尾に a を追加し、$
エスケープしないでください。ドル記号は、最後の文字または記号をチェックすることを意味します。
正規表現:\${(.+?)}$
Java フォーマット:\\${(.+?)}$
\$\{((?:\{[^\{\}]*\}|[^\{\}]*)*)\}
開始ブラケットに遭遇した場合、そのペアを探し、終了ブラケットの後、通常どおりに進みます。これは、ネストされたブラケットの複数のレベルを処理できません。
ここにある主なビルディング ブロック[^\{\}]*
- ブラケット以外のシーケンス。括弧で囲むことはできます\{[^\{\}]*\}
が、そうでない場合もあり(?:\{[^\{\}]*\}|[^\{\}]*)
ます。これらのシーケンスの任意の数が存在する可能性があるため*
、最後に存在します。
Java ではサポートされていない、どのレベルのネストでも再帰的な regexが必要になる場合があります。しかし、このアイデアを慎重に拡張することで、任意の固定金額を一致させることができます。