TextpadまたはNotepad ++で一致するすべての正規表現をリストとしてエクスポートする


28

TextpadまたはNotepad ++で、正規表現検索のすべての一致を単一のリストとしてエクスポートするオプションはありますか?

大きなテキストファイルで、正規表現を使用してタグ(%%で囲まれた単語)を検索し%\< and \>%、Excelを使用して重複を削除して一意のタグのリストを取得できるように、すべての一致を単一のリストとして必要とします。


Notepad ++用のRegexExtractプラグインを使用すると、重複を削除でき、Excelで後処理する必要はありません。
R. Schreurs

回答:


53

これを行うには、Notepad ++の後方参照と検索とマーク機能を使用します。

  1. 正規表現(%(.*?)%)を使用して一致を見つけ、に置き換えます\n%\1%\n。その後、ターゲットワードが別々の行になります(つまり、一致するワードが複数ある行はありません)

  2. Search-> Find-> Mark機能を使用して各行を正規表現%(.*?)%でマークし、テキストをマークする前に「Bookmark Line」にチェックを入れることを忘れないでください

  3. [検索]-> [ブックマーク]-> [マークされていない行の削除]を選択します。
  4. 残りのテキストを保存します。これは必須リストです。

%%の代わりにタグとして<>を含むファイルがもう1つあります。<(。*?)>と\ n <\ 1> \ nを試しましたが、機能しません。助けてください。
-Kiranshell

どういたしまして:)私にとっても<>のために働いています。ネストされた<>はありますか?「機能していない」ことを正確に説明していただけますか?
アンキット

以前のようなタグのリストを作成しようとしていますが、これらには一度<>があり、%(。*?)%の代わりに<(。*?)>と\ nの代わりに\ n <\ 1> \ nを使用しています%\ 1%\ nは、これはサンプルファイルへのリンクですwikisend.com/download/158050/tags.txt
Kiranshell

提供されたテキストで<(。*?)>を使用して、もう一度試してみました。タグ<Supplies> <hostname> .....などのリストを取得しました
アンキット

あなたが持っている正確なエラー/問題を言及してください。ばかげているように聞こえるかもしれませんが、カーソルを一番上に移動することを忘れないでください。私はしばしばその間違いをし、検索結果が返されません... :)
Ankit

5

Notepad ++でこれ行うこと必須要件ですか?Windowsまたは何らかのUnixを使用していますか?Windowsを使用している場合は、コマンドプロンプトから(部分的に)実行できます。

findstr / r "%[az]。* [az] %% [az]%" your_file > new_file

findstrは漠然と触発されているgrepため、このnew_file には検索条件に一致するすべてのが含まれます。次に、Notepad ++を使用して、不要なテキスト(最初の%の左側、2番目の%の右側)を削除します。


そして、もちろん、Unixを使用している場合は、と同等のタスクを実行できますsed


非常に最高の答えから!
チャールズ・アントワーヌFournel

2

一致した正規表現を新しいタブの新しいファイルにコピーできるNotepad ++プラグインがあります。 正規表現

現在のドキュメントからテキストを抽出したり、いくつかの追加設定(大文字と小文字の変換など)がある場所からすべてのファイルを抽出できるNotepad ++のプラグインが見つからなかったため、自分で作成することにしました。(...)プラグインインターフェイスは非常に簡単です(...)。(...)「検索」、「置換」、および「マスク」フィールドは、C ++ 11正規表現構文を使用します。ファイルからの抽出は、現在、UTF8のファイルに対してのみ機能します。

質問に合わせたダイアログ入力の編集

ここに画像の説明を入力してください

画像では、ダイアログに入力する方法を見ることができます。単語にはスペースなどは含まれず、\ wに一致する文字のみが含まれると仮定します。特に:

  • 括弧のペアを使用して、percetange文字なしで単語を選択できるようにします。
  • オプションReplace with replaceを選択して、最初の一致を選択します。それ以外の場合、$ 1、$ 2などすべての列状出力が得られます。
  • 完全な一致を除外するには、[$&をスキップ]をオンにします。
  • 各マッチを一度だけ報告するためにユニークなフィルターをチェックしてください。
  • [ 抽出]をクリックして、結果の取得を選択します。(検索は一致のみを検出しますが、レポートはしません)。

素敵なプラグインは、まさに求められたことをします。
R. Schreurs

64ビットのNotepad ++では動作しないようです
イヴァンチャウ

0

TextPadでは、Find通常どおりボックスをMark All表示してから、ボタンを使用します。

そこから、Copy Bookmarked Lines関数を使用します。([編集]メニュー> [その他のコピー]> [ブックマークされた行]。)


個人的には、その正確な操作を頻繁に行うため、ブックマーク行のコピー機能のキーボードショートカットCtrl + Alt + cを構成しました。
daveloyall

Notepad ++の質問を検索していたため、この質問に来ました。忠実で無料のTextpadユーザーとして何年も過ごした後、Notepad ++(GPL)に切り替えています。
daveloyall
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.