2012-08-15 11 views
30

メモ帳++検索/置換を正規表現に使用して、特定の単語を短い単語のものに置き換えようとしました。

:後方参照を使用して、同じ言葉マイナス終わる rと一致する単語を置き換える -

は、私は(言葉としてではなく ererで終わるすべての単語に一致するように、次の正規表現を使用しました

Find what:([a-zA-z]+e)r

Replace with:$1

しかし、一致する単語が見つかったとしても置き換えません。

Replace with:\1

すべてが正常に動作します:私はこれまで後方参照構文を変更する場合は、


$1の逆参照はなぜ機能しませんか。

逆方向の2つの形式 - \1$1の違いは何ですか?

答えて

32

Notepad ++の以前のバージョン(v5.9.8以前)は、標準POSIX正規表現のみサポートされています。しかし、フルPCRE(Perl互換正規表現)検索/サポートを交換することは、バージョン6.0で追加されました:

New features and enhancement in Notepad++ 6.0:

  • PCRE(Perl互換正規表現)がサポートされています。

これは、メモ帳++ V6.0または任意の新しいバージョン(例えばV6.1.5)を使用している場合、あなたはPCREの構文を使用し、後方参照のため$1の代わり\1を使用することができることを意味し、それは勝ちました以前のバージョンのNotepad ++(バージョン6.0以前)と互換性がありません。それ以外は、似ています。

逆参照構文と新しい構文サポートの背景の違いの詳細については、Backreferences syntax in replacement strings (why dollar sign?)を参照してください。

メモ帳++で正規表現を使用する方法に関する有用なチュートリアルはhereです。

+3

@amiregelz私は長年にわたりメモ帳++を使ってきましたが、私が持っていた最大の不満の1つは、Regexの貧弱なサポートでした。私は2年間これらの強化で暗闇の中にいたとは信じられません。標準のバックリファレンス、ゼロ幅アサーション - 美しいです!私の目を開いてくれてありがとう! –

関連する問題