Notepad++ で正規表現のヘルプが必要

Notepad++ で正規表現のヘルプが必要

テキスト文書内の次の文字列のすべてのインスタンスを検索/置換するために、正規表現(notepad++)の構文を知る必要があります。

文字列は次のようになります

Where do you want to go next?
some text
some text
some text
Home

ここで、「何らかのテキスト」は 1 行のテキストでも複数行のテキストでもかまいません。場合によっては、「次にどこに行きますか?」という文字列とホームの間に 1 行のテキストしか含まれないことがあります。

このリストの一番最後の項目は常に、大文字の H で始まる「Home」という単語になります。

「次にどこに移動しますか?」から、このテキスト ブロック (このドキュメントに文字通り何百回も表示されます) のすべてのインスタンス、すべての「テキスト」行、および「Home」という単語を削除します。

私が問題に遭遇したのは、「some text」が変数であり、新しい行で始まっていたという事実でした。私は正規表現がそれほど得意ではないことを認めざるを得ません。そのため、Superuser.com の誰かが評判ポイントをいくらか必要としているのではないかと思いました :)

さらに詳しい情報が必要な場合はお知らせください。

ありがとう、

リッチー

答え1

Notepad++ の新しいバージョン (6.1.x 以降だと思います) では、複数行の一致がサポートされるようになりました (現在 6.1.5 を使用しています)

「検索/置換」ダイアログの「正規表現」ラジオ ボタンの横に、「. 改行に一致」というチェックボックスがあり、これは複数行の一致を意味します。

チェックボックスをオンにして、次の正規表現を使用します。

^Where do you want to go next\?.*?^Home$

答え2

この正規表現は私にとってはうまくいきました:

^Where do you want to go next?\r\n(.*\r\n)*?Home$

Windows では\r\n改行に を使用します。Unix ベースのシステムでは のみを使用します\n

この違いは今思いついたばかりなので、新しいことを教えてくれてありがとう。 :-)

関連情報