2011-05-29 15:05:02 +0000 2011-05-29 15:05:02 +0000
221
221

メモ帳++で必要な単語を含む行以外の行を全て削除したい

テキストファイルを持っているのですが、<Path>から始まる行を残して、それ以外の行を全て削除したいのですが

どうすればいいですか?

回答 (10)

315
315
315
2011-06-03 20:23:06 +0000

簡単な方法があります。2つのステップを行う必要があります。Go to Search menu > Find… > “Mark "タブを選択します。正規表現を有効にします。^<Path>を検索します(^は行頭になります)。行をブックマークする」にチェックを入れて、「すべてマークする」

  1. メニュー「検索 - ブックマーク - マークされていない行の削除」へ移動します。
67
67
67
2013-02-27 16:03:51 +0000

これは実際には6.3の時点で2段階でできます。最初に試したときは5.9だったので、それよりも早くできると思います。

stemaさんの投稿を元にして、この回答にしました。これでステップが1つ減りました。線にマークをつけて、マークのない線を消す。完了です。詳しい手順は以下の通りです。

  1. 検索メニューの「検索」をクリックします。検索ダイアログで「マーク」タブをクリックします。正規表現を有効にします。^<Path>を検索します(^は改行のためのものです)。行のしおり」にチェックを入れて、「Mark All」を押します。Search Menu -> Bookmark -> Remove Unmarked Lines.
30
30
30
2013-07-08 16:51:09 +0000

正規表現のみのクリーンな解決策

2段階の変形

1.正規表現の置換

2.置換

1段階の変形

2.置換

一致した文字列を空の文字列に置換するには ^(?!<Path>).*\r\n を使用します。一般化されたバージョンは ^(?!.*?test).*\r\n となります。これはファイルの最後の空行を削除しません。これはファイルの最後の空行を削除しません。_

説明:

  1. (?!)は否定的なルックアップです。 ^.*test.*$は要求されたテキストを含む行全体を選択します。
5
5
5
2015-12-17 11:43:30 +0000

一番簡単な方法は、"現在のドキュメントのすべてを検索 “機能を使って、検索結果を新しいファイルにコピーするか、すべてを選択して現在のファイルに置き換えることだと思います。検索結果を右クリックしてコピー/ペーストするだけです。

4
4
4
2013-06-21 16:36:49 +0000

メニューのSearch -> Find… -> 正規表現を有効にします。(^は行頭)を検索します。

“Find all in Current Document "ボタンをクリックします。

この新しいタブでは、次のようになっています: menu Search -> Replace… -> 正規表現を有効にします。"Line \d+: ”. “Replace with: "フィールドは、空白のままにしておきます。

"Replace all "ボタンをクリックします。

3
3
3
2011-05-30 01:02:36 +0000

ファイルシステムのパスではなく、実際に <Path> にマッチさせたい場合は、Perl を使ってコマンドラインから次のように試してみてください。

3
3
3
2011-05-29 18:07:54 +0000

不器用ですが、Excelに全部コピーして、=IF(LEFT(A1,6)="<Path>",A1,"")を使って、その数式を全部コピーします。そして、それをメモ帳++に戻してコピーします。理想的ではありませんが、かなり簡単です(Excelがあれば)。警告。インデントされた行ではうまく動作しません(Excelでは列がずれるなどしてしまいます)。

2
2
2
2011-05-30 03:00:09 +0000

メモ帳++でやりたいことをする簡単な方法はありません。コンピュータにプログラムをダウンロードするか、VB で何かをスクリプト化する必要があります (Windows を使っていると思います)。sed ユーティリティは、GnuWin http://gnuwin32.sourceforge.net/packages/sed.htm ) の偉大な人々から Windows 用に提供されています。このプログラムをダウンロードして、コマンドプロンプトからコマンドを実行してください。なぜかというと、おそらく最初の頃は正規表現文が出てこないからです。sed ユーティリティは正規表現基本構文を使用しています( http://www.regular-expressions.info/reference.html のリファレンスを参照してください)。もし何かが *nix パス (/var/www) のようなものであれば、正規表現が動作するために / 文字をエスケープする必要があるでしょう。もし / 文字をエスケープしていたら、コマンドはエラーを出していたでしょう。特殊な文字 (/ など) は、バックスラッシュでエスケープすることができます。

1
1
1
2018-05-01 14:37:57 +0000

正規表現に置き換えるとより良い解決策:

(?!^.*SOMETEXT.*$)^.+\r?\n

そして何もないと置き換える

0
0
0
2011-05-29 15:16:28 +0000

Search->Replaceで、^[^].*のような正規表現を入力し、Regular expressionを使って全てを空の文字列に置き換えます。次のステップは、\n\nを検索して空行を探し、\nまで何度もExtendedを使って0 occurrences were found.に置き換えます(ファイル形式によっては、\r\n\r\n\r\nを使い分けます)。空行が非常に多く並んでいる場合は、検索文字列の中に\n\n\n\n\n\n\nやそれ以上の\n:sを使った方が手っ取り早い。