正規表現を使用した検索と置換は、これらのアクションを定期的に実行できるEmacsユーザーにとって明らかに強力なツールです。ただし、Emacs(および/またはプログラミング)の初心者として、正規表現を習得する必要があります。
組み込みのEmacsチュートリアルと同様に、Emacsでインタラクティブに正規表現を学習およびトレーニングできますか?そうでない場合、Emacsを利用して検索と置換のための正規表現の使用を練習する他の提案は何ですか?
正規表現を使用した検索と置換は、これらのアクションを定期的に実行できるEmacsユーザーにとって明らかに強力なツールです。ただし、Emacs(および/またはプログラミング)の初心者として、正規表現を習得する必要があります。
組み込みのEmacsチュートリアルと同様に、Emacsでインタラクティブに正規表現を学習およびトレーニングできますか?そうでない場合、Emacsを利用して検索と置換のための正規表現の使用を練習する他の提案は何ですか?
回答:
それに、Visual-regexpをregexp-builder
検討して、進行中の置換に関する視覚的なフィードバックを提供することもできます。
anzu
同じことを行います。
あなたはM-x regexp-builder RET
どちらがインタラクティブな正規表現マッチャーであるかを試すことができます、それは悪くありません
C-g
期待どおりに終了しないときにパニックにならないでください。C-c C-q
練習が終了したら、正規表現ビルダーを終了するデフォルトのキーバインドです。
私が使用しregexp-builder
ますが、テストは対話的に正規表現とフィードバックを得るのを聞かせています。そしてもちろん、それを使い始めたらすぐに「この正規表現をどうやって使うのquery-replace-regexp
?」と自問しました。
私が選んだ答えは、EmacsWiki ReBuilderページで定義されている次の関数です。
(defun reb-query-replace (to-string)
"Replace current RE from point with `query-replace-regexp'."
(interactive
(progn (barf-if-buffer-read-only)
(list (query-replace-read-to (reb-target-binding reb-regexp)
"Query replace" t))))
(with-current-buffer reb-target-buffer
(query-replace-regexp (reb-target-binding reb-regexp) to-string)))
だから私のワークフローは:
M-x re-builder
M-x reb-query-replace
正規表現を使用して、正規表現のどの部分(特に正規表現グループ)に一致するかを確認することを学習する場合、非常に役立ちます。そして、それをインタラクティブかつ段階的に行うこと。
@immerrの答えに沿って、Iciclesの検索には長い間同様の強調表示がありました。
正規表現グループを個別に表示するhelm-regexpを使用することもできます。
emacs内ではなく、http://rubular.com/には基本的regexp-builder
にチートシートがあります。サンプルをセットアップして、そのサンプルへのリンクを吐き出すことができます。チームで正規表現について議論するときにこれを使用します。
Dave Fの代替として、regexp-builder
任意のテキストを作成して、パターンマッチングを練習することもできます。
このコマンドの最も便利な機能は、パターンが作成されるときにバッファー内の一致を強調表示して、適切なパターン一致を確認できるようにすることです。
(query-replace-regexp)
(C-M-%)を使用して正規表現を作成し、必要な置換を実行すると、練習に役立ちます。
regexp-builder
は、まだ提供していない正規表現を「練習」したい人にどのような利益をもたらしますか?問題query-replace-regexp
は、正規表現全体を記述し、それに一致するものを見つけるためにコミットする必要があることです。結果が気に入らない場合は、最初からやり直す必要があります。 regexp-builder
マッチをオンザフライで表示するので、何をしているのかわからない場合に機能するまで正規表現を微調整できます。
query-replace-regexp
、あなたが特にEmacsでそれを使用するために使用されます