emacs regexps中的OR运算符是什么?

Sam*_*son 9 regex emacs

手册说要使用'\ |',因为在\ | b中匹配a或b.但是当我将它与regexp builder或align-regexp一起使用时,例如"True\| False",它不会识别"True"或"False".我收到以下消息:

Wrong argument type: integer-or-marker-p, nil
Run Code Online (Sandbox Code Playgroud)

我究竟做错了什么?

Vic*_*gin 12

使用双重逃脱: \\|

一些附加说明:

Emacs有2个转义样式,一个在EmacsLisp中,另一个在命令中使用时,
即.从M-x提示(rgrep,occur,...)

在EmacsLisp中,使用双反斜杠 \\|

...

M-x …使用单个反斜杠\|

...作为旁注,在编写嵌入式EmacsLisp时,例如在yasnippet动态扩展中,你必须使用四重反斜杠:( \\\\|以逃避双反斜杠.)

总是避免这种情况(如果可能的话),例如在yasnippet中你可以提供与模式相关的emacslisp,而无需额外的转义,通过 .yas-setup.el


phi*_*ils 5

有关更多详细信息,请参阅'\'elisp 手册第 34.3.1.1 节“正则表达式中的特殊字符”中对和字符串的讨论

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