私はemacsが大好きです。私は正規表現が大好きです。私は emacs の正規表現構文が嫌いです - グループ化括弧と中括弧をエスケープする必要があること、リテラル括弧をエスケープしないこと、事前定義された文字クラスの欠如など.
Query-replace-regexp (または他の多くの機能の 1 つ) 機能を使用するときに、java/js/perl/ruby/etc でプログラムした構文を使用できるように、emacs の正規表現エンジンを置き換えるか、設定を微調整できますか? ...?
編集: 件名はもともと「emacsの正規表現エンジンを変更する方法」でした。これは、エスケープルールを変更して文字クラスを追加するだけでなく、(投稿では言及されていませんが)さまざまな一般的な拡張機能のサポートを追加します(?...)。キャプチャしない括弧: (?:...)、if/if-not の後にのみ一致: (?=...)/(?!...) など。私は(修正されることを嬉しく思いますが)これらがemacsの現在の正規表現エンジンで可能であるとは信じていません。
以下の解決策は、emacs が理解する構文に置き換えることにより、エスケープと追加の char クラスの元の問題に対処します。2番目の回答(現在は削除されています)は、すべての正規表現処理を置き換えるためにemacsの正規表現関数をアドバイスする(別の開始時に実行する関数を追加する)ことを提案しました。著者は、既存の emacs コードの多くを破壊する可能性があることに気づき、すぐに自分自身を検閲し、最終的に投稿は削除されました。
正規表現エンジンを拡張機能をサポートするものに変更したいのですが、エスケープ動作を普遍的に変更すると混乱が生じることに同意します。追跡するつもりはありません。したがって、質問に合わせて件名を変更し、回答を受け入れています。
共通構文と拡張機能をサポートするようにエンジンを変更し、正規表現関数に emacs-internal コードを共通構文に変換するようにアドバイスし、インタラクティブ関数に私の共通構文を emacs-syntax に変換するようにアドバイスすることが頭をよぎりました。共通に戻されます)...しかし、RMSでさえその前にフォークを推奨すると思います。