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

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

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

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

答え1

これを実現するには、バックリファレンスNotepad++ の検索とマーク機能。

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

  2. 検索-->検索-->マーク機能を使用して、各行を正規表現でマークし%(.*?)%、「ブックマークライン' テキストをマークする前に

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

答え2

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

findstr /r "%[az].*[az]% %[az]%"あなたのファイル>新しいファイル

findstrは漠然と にインスピレーションを受けているのでgrep、この新しいファイル すべてが含まれます検索条件に一致するものを見つけたら、Notepad++ を使用して不要なテキスト (最初の % の左側と 2 番目の % の右側) を削除できます。


もちろん、Unix を使用している場合は、 を使用して同等のタスクを実行できますsed。また、GNU を使用している場合grep(つまり、Linux を使用している場合) は、 を使用して実行できますgrep -o

答え3

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

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

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

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

画像では、ダイアログに入力する方法がわかります。単語にはスペースなどが含まれず、\w に一致する文字のみが含まれていると想定しています。特に次の点に注意してください。

  • パーセント文字なしで単語を選択できるようにするには、括弧のペアを使用します。
  • オプションを選択置換して抽出, をクリックして最初の一致を選択します。それ以外の場合は、すべて $1、$2 などの列形式の出力が得られます。
  • チェックスキップ $& ...完全一致を省略します。
  • チェックフィルターユニーク各一致を 1 回だけ報告します。
  • クリック抽出する結果を取得するには選択します。(検索一致するものを見つけるだけで、報告はしません。

答え4

代わりにオンラインソリューションに興味がある人は(notepad++プラグインは64ビットでは動作しないため)、試してみてください。モルビオツール追加の行なしで、または追加の行ありで、正規表現を完全に抽出できます。

関連情報