20

次のような単語を含むテキストがあるとします。

"foo" ... "bar" ... "file" ... "emacs"

そして、あなたがしたいのは、 " を ' ' に置き換えることだけです。次の置換を要求するだけで実行できることはわかっています。

" -> ''

しかし、より複雑なケースでは、正規表現を使用してインタラクティブに実行したいとします。どうすれば実行できますか?

私は自分自身をよりよく説明します: このように動作するコマンド、または一連のコマンドがあればいいのにと思います:

  • like の正規表現を書き、"\\(.*?\\)"インタラクティブに結果を確認します (つまり、正規表現を編集すると現在表示されている一致が強調表示され、変更を加えると常に強調表示が更新されます)。
  • 正規表現に満足したら、次のような置換を指定します' '\1' '
  • すべての一致をインタラクティブに置換
4

3 に答える 3

24

ついに見つけた!!!!! 従う手順は次のとおりです。

  • M-x isearch-forward-regexp

  • 正規表現をインタラクティブに挿入します。間違えた場合は、DELまたはMeを使用して、正規表現をナビゲートして修正できます。

  • 次に、必要なものが見つかったら、すぐにM-%と必要な置換を押して、置換を開始します。

したがって、完全にインタラクティブで段階的な方法で、検索して正規表現に置き換えることができます。

于 2012-06-21T11:21:53.577 に答える
7

コマンドquery-replace-regexpは要件を満たしていますか?Emacsのほとんどのインストールでは、にバインドされC-M-%ます。

それはOPの要件を満たしていないので、も参照することをお勧めしre-builderます。この機能は、Emacsのマニュアルやヘルプシステムには記載されていません。EmacsLispのマニュアルに記載されているだけです

于 2012-06-21T08:43:48.487 に答える