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

时间:2010-12-14 19:04:43

标签: regex emacs

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

Wrong argument type: integer-or-marker-p, nil

我做错了什么?

2 个答案:

答案 0 :(得分:10)

使用双重转义:\\|

附加说明:

Emacs有2种转义样式,一种在EmacsLisp中,另一种在命令中使用时,
即。来自M-x提示(rgrepoccur,...)

  

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

...

  

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

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

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

提供与模式相关的emacslisp,而无需额外的转义

答案 1 :(得分:4)

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

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