手册说使用'\ |',因为\ | b匹配a或b。但是当我将它与regexp builder或align-regexp一起使用时,例如with,“True \ | False”,它不识别“True”或“False”。我收到以下消息:
Wrong argument type: integer-or-marker-p, nil
我做错了什么?
答案 0 :(得分:10)
\\|
附加说明:
Emacs有2种转义样式,一种在EmacsLisp中,另一种在命令中使用时,
即。来自M-x
提示(rgrep
,occur
,...)
在EmacsLisp中,使用双反斜杠
\\|
...
从
M-x …
使用一个反斜杠\|
...作为旁注,在编写嵌入式EmacsLisp时,例如在yasnippet动态扩展中,您必须使用四重反斜杠:\\\\|
(以逃避双反斜杠。)
始终避免这种情况(如果可能),例如在yasnippet中,您可以通过.yas-setup.el
答案 1 :(得分:4)
有关详细信息,请参阅elisp手册第34.3.1.1节“正则表达式中的特殊字符”中对'\'
和字符串的讨论
M - : (info "(elisp) Regexp Special")
RET