0

全て、

sample.txt というテキスト ファイルがあります。このファイルには、それぞれ [ と ] で始まり、終わるブロックが多数含まれています。(添付画像をご覧ください)。

ここで、「finance3」などの文字列が与えられた場合、逆正規表現 (または同様のもの) を使用して、文字列を「保持」する行の範囲 (つまり、ブロック) を見つけることができます。

ここに画像の説明を入力例 (添付の画像を参照してください) では、指定された文字列は 18 行目にある "finance3" です。返されるブロックは 17-24 です。

これを行う 1 つの方法は、文字列が存在する行番号を取得して逆方向に移動し、'[' を含む行番号を grep することです。繰り返しますが、文字列が存在する行から開始して各行に進み、']' に遭遇したときにその行で停止します。

しかし、正規表現を使用してこれを行うより良い方法はありますか?

お時間をいただきありがとうございます。

ラヴィ。

4

1 に答える 1