2016-09-06 32 views
1

私はたくさんのtxtファイルを持っており、それぞれから特定のテキストを抽出することを目指しています。私はメモ帳でregexを使ってファイルのほとんどを管理していました。notepad ++でregexを使ってテキストを抽出します(見つからない場合)

検索:

.*(pretty elaborate regex).* 

は交換してください:

$1 

これは素晴らしい作品私はかなり手の込んだ正規表現を使用して、フォルダ内のすべてのファイルの検索および置換を使用します。しかし、私の文書の中には、私が探している特定のテキストが含まれていないものがあります。メモ帳ではこれらの文書は変更されません。これらの文書に「no_match_found」というテキストを入力させるにはどうすればよいですか?

ありがとうございました! アンドレアス

+0

あなたがそれらのファイルに文書全体を交換したいわけですか? –

答えて

1

Boostの条件付き置換パターンは非常に簡単です。 |(.*)代替ブランチを正規表現に追加してください(.が改行に一致することを確認してください)。(?1$1:NO_MATCH_FOUND)パターンを使用して、グループ1の値を挿入するか、ドキュメント全体を文字通りNO_MATCH_FOUNDに置き換えます。ここで

が一致を持たない文書に何が起こるかの例です:

enter image description here

+1

ありがとう!それはまさにそれが正常に動作します! –

1

たぶんこの記事はあなたを助ける:How to negate the whole regex?

利用ネガティブ前後参照:(?!パターン)

あなただけの否定の正規表現で一致し、その後

をテキストを配置することができます
関連する問題