emacs regexps中的OR运算符是什么?
手册上说要使用“\\\”,因为a\\\;b匹配a或b。但当我将其与regexp builder一起使用或将regexp与“True\| False”对齐时,它无法识别“True”或“False”。我得到以下信息: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
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”
。