web-dev-qa-db-ja.com

Notepad ++で^と〜の間のテキストを検索して置換する

^記号と〜記号の間のすべてのテキストを削除する大きなテキストファイルがあります。これは、複数の行にわたって機能する必要もあります。

[検索]ボックスに^*~を使用し、[置換]ボックスには何も使用しないで、通常の検索と置換を実行しようとしましたが、結果は0でした。

22
Splendor

これは通常のFind and Replaceでは不可能です。 Notepad ++ 6を使用する場合、 [〜#〜] pcre [〜#〜]source )をサポートする新しい正規表現エンジンを利用できます。

押す CtrlHFind and Replaceダイアログを開き、次のアクションを実行します:

Find what:          \^.*?~
Replace with:       
Wrap around:        checked
Regular expression: selected
. matches newline:  checked

今押します AltA すべての出現箇所を置き換えます。

Find whatの正規表現は、次のように構成されています。

  • \^はリテラル^です。
  • .*?は、正規表現が一致できる最小の文字数です。
  • ~はリテラルです。
24
Dennis

\^.*?~を検索して、を確認します。一致する改行が有効になっている:

enter image description here

これは、^には特別な意味があるため、行の先頭に一致するためです。したがって、バックスラッシュ\^でエスケープする必要があります。

^*を書き込むと、「行の任意の数の行頭」に一致します。 .*は「任意の文字」に一致しますが、デフォルトでは改行には一致しません。

8
Der Hochstapler

検索セクションでこの正規表現を使用してみてください\^[^~]*~は、^と〜の間のすべてを包括的に置き換えます。

2
barlop

開始文字と終了文字で同様のBETWEEN置換要件がありました。これはOutlookのメールから送信されました。メンバーの数百人と私はちょうど<RemoveTextHere>

オリジナル

First1 Last1 <[email protected]>; First2 Last2 <[email protected]>; First3 Last3 <[email protected]>; First4 Last4 <[email protected]>;

デニスは私のソリューションに近かったFind what: \^.*?~しかし、リテラル文字を変更する必要がありましたFind what: \<.*?>その後、最初のスラッシュを削除する必要がありましたFind what: <.*?>

更新済みFind what: <.*?>;空を交換してください。

First1 Last1 ; First2 Last2 ; First3 Last3 ; First4 Last4

_

特殊文字*$\+^(および)[]{および}

特殊文字はジェリー・ジェレミアによってここに記述されています https://stackoverflow.com/questions/37742519/notepad-wildcard