Textpad または Notepad++ には、正規表現検索のすべての一致を単一のリストとしてエクスポートするオプションはありますか?
大きなテキスト ファイルで、正規表現を使用してタグ (% % で囲まれた単語) を検索し%\< and \>%
、すべての一致を 1 つのリストとして取得して、Excel を使用して重複を削除し、一意のタグのリストを取得したいと考えています。
答え1
これを実現するには、バックリファレンスNotepad++ の検索とマーク機能。
正規表現(たとえば )を使用して一致を検索
%(.*?)%
し、 に置き換えます\n%\1%\n
。これにより、ターゲット単語が別々の行に表示されます(つまり、行に一致する単語が複数あることはありません)。検索-->検索-->マーク機能を使用して、各行を正規表現でマークし
%(.*?)%
、「ブックマークライン' テキストをマークする前に- 検索-->ブックマーク-->マークされていない行を削除を選択します
- 残りのテキストを保存します。これは必須リストです。
答え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ビットでは動作しないため)、試してみてください。モルビオツール追加の行なしで、または追加の行ありで、正規表現を完全に抽出できます。