
Notepad++ を使用して複数行の正規表現検索を実行しました。行は INFO で始まり、既知の数字パターンで終わります。正規表現を入力した後に検索をクリックすると、メイン ウィンドウに正しい結果が強調表示されます。
私のユースケースでは、find all in open documents
この同じ正規表現を使用したいと考えています。問題は、それを実行すると、検索結果ウィンドウに複数行の一致の最初の行しか表示されないことです。本当に役立つためには、一致全体 (私の場合は、ほぼ常に 2 行になります) が検索結果ウィンドウに表示される必要があります。検索結果画面の出力を取得して、別のプロセスへの入力として使用したいのですが、これはこの質問の範囲外です。
では、複数行の一致全体を表示するにはどうすればよいでしょうか。スクリプト言語またはプログラミング言語のプログラムとしてこれを行う方法は考えられますが、Notepad++ 内からこれを行うにはどうすればよいのでしょうか。
答え1
否定的な回答: 正規表現オプション「. 改行に一致」を設定することで、複数のファイル内の複数の行を検索して選択することは可能ですが、検索結果ペインには見つかった結果ごとに最初の行のみがリストされます。
この動作は Notepad++ に組み込まれており、変更できません。また、リストされているプラグインも確認しましたが、どれも変更できません。
これを機能リクエストとしてリクエストすることができます Notepad++ コミュニティしかし、あなたの問題に対する即時の解決策は見つかりません。
答え2
次のことを試してください。ドキュメントが INFO という単語で始まり、999 で終わるとします。
正規表現は次のようになります:
INFO.+?999
これが機能するためには複数行検索ウィンドウの「使用」のチェックマークのすぐ横にある正規表現チェックボックスがあります. は改行に一致します動作させるにはこれを選択する必要があります。
ps Notepad++バージョン7.5.1で動作することを確認しました
ps2 検索は、各出現の最初の行のみを返します。したがって、一致が 5 行目から始まって 10 行目で終わる場合、検索ウィンドウには 5 行目から始まると表示されます。アプリケーションでこの動作を変更することはできません。
答え3
2つのステップで解決できました: 最初のステップ:
- 複数行に一致
- それを何かに置き換えるマーク役立つ情報を保存する2番目のステップ:
- 「ドキュメント内を検索」 = マークされた行を検索 [ここに画像の説明を入力][1]
[1]: 作業サンプルを参照https://i.stack.imgur.com/ClQjU.png
答え4
そこにはハッキング的なこれを達成する方法。
- 検索ダイアログボックスで、マークタブに移動します。
- すべてマークをクリック
- 次に、マークされたテキストをコピーをクリックします
- 新しいタブを開き、コピーしたテキストを貼り付けます
これで、各検索結果の一致行がすべて表示されますが、ウィンドウには表示されませんSearch results
。もう 1 つの欠点は、これが現在のドキュメントでのみ機能し、要件がFind All in All Opened Documents
満たされないことです。
次のGIFは、Zookeeperログでこれらの手順を実行する様子を示しています(リンク)。