Was ist der Operator OR in Emacs regexps?

8

Das Handbuch sagt '\ |', wie in a \ | b mit a oder b übereinstimmt. Aber wenn ich es mit Regexp Builder oder Align-Regexp z. mit "True \ | False" erkennt es "True" oder "False" nicht. Ich bekomme die folgende Nachricht:

%Vor%

Was mache ich falsch?

    
Samuel Danielson 14.12.2010, 19:04
quelle

2 Antworten

10

Verwenden Sie double escape: \|

Einige zusätzliche Hinweise:

Emacs hat zwei Escaping-Stile, einen in EmacsLisp den anderen, wenn er in Befehlen verwendet wird,
dh. von der Eingabeaufforderung M-x ( rgrep , occur , ...)

  

Verwenden Sie in EmacsLisp den doppelten Backslash \|

...

  

Von M-x … verwende einen einzelnen Backslash \|

... Als Randnotiz, wenn Sie eingebettete EmacsLisp schreiben, zum Beispiel in dynamischen Erweiterungen von yasnippet, müssen Sie einen vierfachen Backslash verwenden: \\| (um die doppelten Backslashes zu vermeiden.)

Vermeiden Sie dies (wenn möglich), zum Beispiel können Sie in yasnippet modusbezogene emacslisp ohne zusätzliches Escaping über .yas-setup.el

bereitstellen     
Victor Deryagin 14.12.2010, 20:28
quelle
4

Weitere Details finden Sie in der Diskussion von '\' und Strings im elisp-Handbuchabschnitt 34.3.1.1 "Sonderzeichen in regulären Ausdrücken"

M -: (info "(elisp) Regexp Special") RET

    
phils 14.12.2010 21:57
quelle

Tags und Links