現在のメジャーモード設定に従って、シンボル、つまり関数名などに一致する正規表現を構築しようとしています(正しく覚えている場合は、構文テーブルと呼ばれます)。調査の結果、これらの有用な正規表現が見つかりました。
\_<
シンボルの始まりに一致\_>
シンボルの終わりに一致
次に、記号構成文字を表す方法を見つける必要があると思います。我々は持っている\w
単語構成文字のために、私はシンボルのための何かを見つけることができません。シンボルに一致する正規\s
表現は、次のようになります(シンボル構成文字に一致すると想定)。
\_<\s+\_>
何か不足していますか?シンボルを一致させる方法は?
単語のマッチングは機能しません。些細な例はfoo-bar
、Emacs Lispモードのシンボルのようなものですが、単語で-
はありません(単語を構成する文字ではないため)。
abo-abo:醜いので、AFAIKはあなたがしなければならないことですが、与えられたシンボルはシンボル構成文字とワード構成文字の両方を含むことができます。あなたはそれを答えにするべきです。マーク、それは
—
phils 2016年
\s
あなたの仮定とは完全に異なるので、あなたは実際に何が意味するのかを見るためにマニュアルをチェックしたいと思うでしょう。
@phils、私はそれ
—
Mark Karpov 2016年
\s
がEmacsの正規表現でなんらかの意味があることさえ知らなかった、例えば私はそのシンボルを選んだだけだ。
@Mark:Elispのマニュアル、ノードRegexp Backslashを参照してください。
—
2016年
(re-search-forward "\\_<\\(?:\\sw\\|\\s_\\)+\\_>" nil t)
。それは機能しますが、もっと短い方法があるのだろうかと思います。