だから私はこの形式のテキストを含むファイルを解析しようとしています:
outerkey = (innerkey = innervalue)
より複雑になります。これは、ファイルでも有効です。
outerkey = (innerkey = (twodeepkey = twodeepvalue)(twodeepkey2 = twodeepvalue2))
したがって、基本的には外部キーのテキストのみをキャプチャしたいと考えています。すべてのテキストが 1 行に収まるとは限りません。値が複数の行にある可能性があります。また、ファイルには複数の項目があります。
これまでの私の正規表現は次のとおりです。
[^\s=]+\s*=\s*(\(\s*.*\s*\))
目標は、最初の部分[^\s=]+
を検索したいキーに置き換えるだけで、外側の括弧のテキスト全体を取得することです。
これが問題です。私の正規表現は、キャプチャしたいテキストをキャプチャするだけでなく、正規表現は貪欲であるため、次のグループからのテキストもキャプチャします。最初の閉じ括弧でキャプチャを停止するため、欲張らないようにしても機能しません。
最終的に、次の文字列がある場合
foo =
(
ifoo = ifoov
)
bar =
(
ibar =
(iibar = iibarv)
(iibar2 = iibarv2)
)
グループを一致させたい
(
ifoo = ifoov
)
と
(
ibar =
(iibar = iibarv)
(iibar2 = iibarv2)
)
今なら合うよ
(
ifoo = ifoov
)
bar =
(
ibar =
(iibar = iibarv)
(iibar2 = iibarv2)
)
ちなみに、私はこれを複数行および単一行モードで実行しています。
何か案は?ありがとう!