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

emacs regexps中的OR运算符是什么?,regex,emacs,Regex,Emacs,手册上说要使用“\\\”,因为a\\\;b匹配a或b。但当我将其与regexp builder一起使用或将regexp与“True\| False”对齐时,它无法识别“True”或“False”。我得到以下信息: Wrong argument type: integer-or-marker-p, nil 我做错了什么?使用双转义:\\\\\124; 一些附加说明: Emacs有两种转义样式,一种在EmacsLisp中,另一种在命令中使用, 即,从M-x提示符(rgrep,出现,…) 在Emac

手册上说要使用“\\\”,因为a\\\;b匹配a或b。但当我将其与regexp builder一起使用或将regexp与“True\| False”对齐时,它无法识别“True”或“False”。我得到以下信息:

Wrong argument type: integer-or-marker-p, nil
我做错了什么?

使用双转义:
\\\\\124;
一些附加说明:

Emacs有两种转义样式,一种在EmacsLisp中,另一种在命令中使用,
即,从
M-x
提示符(
rgrep
出现
,…)

在EmacLisp中,使用双反斜杠
\\\\\124;

M-x…
使用一个反斜杠
\\\124;

…作为旁注,在编写嵌入式EmacsLisp时,例如在yasnippet动态扩展中,您必须使用四个反斜杠:
\\\\\\\\\\\\;
(以避开两个反斜杠)


始终避免这种情况(如果可能),例如在yasnippet中,您可以通过
.yas setup.el

提供模式相关的EmacLisp,而无需额外转义。有关更多详细信息,请参阅elisp手册第34.3.1.1节“正则表达式中的特殊字符”中对
'\'
和字符串的讨论


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

你确定你应该使用
\\\\\
而不是
\
?有些奇怪的事情正在发生,因为如果你用高亮显示Regexp尝试True\\\\False,它会工作。在regexp builder中,它没有。也许组和或在构建器中不起作用,这看起来很蹩脚。我不认为正则表达式是你的问题。发布emacs lisp。我发现emacs版本21.3.1(x86_64-redhat-linux-gnu)与@justinhj相同,发布您遇到问题的命令的确切顺序,或者复制粘贴您尝试使用的lisp代码(我甚至不知道是哪个!)。“or”运算符是
\\\\
。字符串和regexp在Emacs Lisp中是正交的,因此如果将regexp放入字符串中,则需要编写例如
“True\\\ False”