Ich versuche, einen regulären Ausdruck zu erstellen, der mit Symbolen übereinstimmt, d. H. Funktionsnamen und dergleichen, gemäß den aktuellen Einstellungen für den Hauptmodus (wenn ich mich richtig erinnere, wird er als Syntaxtabelle bezeichnet). Nach einigen Nachforschungen habe ich diese nützlichen regulären Ausdrücke gefunden:
\_<
stimmt mit dem Anfang eines Symbols überein\_>
Entspricht dem Ende eines Symbols
Jetzt denke ich, ich muss herausfinden, wie man einen symbolischen Charakter darstellt. Wir haben \w
für Wortbestandteile Zeichen, aber ich kann nichts für Symbole finden. Regexp, um mit Symbolen übereinzustimmen, sollte ungefähr so aussehen (vorausgesetzt, dass \s
Übereinstimmungen mit Symbolbestandteilen übereinstimmen):
\_<\s+\_>
Vermisse ich etwas Wie passt man zu Symbolen?
Beachten Sie, dass das Abgleichen von Wörtern bei mir nicht funktioniert. Ein triviales Beispiel ist so etwas wie foo-bar
ein Symbol im Emacs Lisp-Modus, aber kein Wort (weil -
es kein Wortbestandteil ist).
\s
tatsächlich bedeutet, da es völlig anders ist als Ihre Annahme.
\s
das in Emacs regulären Ausdrücken eine Bedeutung hat, ich habe zum Beispiel nur dieses Symbol ausgewählt.
(re-search-forward "\\_<\\(?:\\sw\\|\\s_\\)+\\_>" nil t)
. Es funktioniert, aber ich frage mich, ob es einen kürzeren Weg gibt.