web-dev-qa-db-ja.com

ケイト正規表現を置き換える方法

私はKateエディターを使用しています。これが私の問題を示す最小限の例です:

私は次のような出来事がたくさんあるファイルを持っています:

\command{stuff}

ここで、stuffは任意の文字列です。これを置き換えたい

\disobey{stuff}

ものは変更されていません。正規表現:

\\command\{[a-zA-Z]*\}

そのような表現に一致します。だから私はCTRL-rで置換ダイアログを引っ張って、

Find: \\command\{[a-zA-Z]*\}
Replace: \\disobey\{\1\}

したがって、ドキュメントでは、実際のインスタンスは次のようになります。

\command{exchange}

置換ボタンを押すと、に変更されます

\disobey{1}

Kateのドキュメント:付録B:正規表現では、\ 1は最初に使用されたパターンと一致する必要があります。これは確かに正しい構文ですか?また、$ 1、#1、その他さまざまなことを試しました。

14

値を( )でラップしてグループとしてキャプチャし、置換で使用できるようにします

したがって、次のように検索正規表現を変更します。

\\command\{([a-zA-Z]*)\}

そして、あなたはうまくやるべきです。

13
Amit Joki

ドキュメントから直接引用します。

文字列_\1_参照括弧で囲まれた最初のサブパターン

したがって、_[a-zA-Z]*_をキャプチャグループに入れる必要があります(_([a-zA-Z]*)_など)。

_Find: \\command\{([a-zA-Z]*)\}
Replace: \\disobey\{\1\}
_
19