web-dev-qa-db-ja.com

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

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

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

30
Kiranshell

これは、Notepad ++の Backreferences および検索とマーク機能を使用して実現できます。

  1. 正規表現(たとえば%(.*?)%)を使用して一致を検索し、それを_\n%\1%\n_で置き換えます。この後、ターゲットのWordが別々の行に表示されます(つまり、一致するWordが複数ある行はありません)。

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

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

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

 findstr/r "%[a-z]。* [a-z]%%[a-z]%" your_filenew_file

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


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

5
Scott

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

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

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

enter image description here

画像では、ダイアログの入力方法を確認できます。 Wordにはスペースなどが含まれておらず、\ wで一致する文字のみが含まれていると思います。特に:

  • 角かっこを使用して、Percetange文字なしでWordを選択できるようにします。
  • 最初の一致を選択するには、オプションExtract with replaceを選択します。それ以外の場合は、$ 1、$ 2などすべての円柱状の出力が得られます。
  • Skip $&...をチェックして、完全一致を省略します。
  • Filter uniqueをチェックして、各一致を1回だけ報告します。
  • Extractをクリックして、結果を取得することを選択します。 (Searchは一致のみを検索し、レポートはしません)。
2
Greck

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

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

0
daveloyall