【发布时间】:2014-02-18 18:36:24
【问题描述】:
在邪恶模式下使用 Emacs,我遇到了包含 \_ 的正则表达式的问题,例如
/TAG1\_.\{-}TAG2
/TAG1\_s*TAG2
例如,第一个正则表达式在 Vim 中用于查找 TAG1 和 TAG2 之间的任何文本块,包括空格和换行符。它将匹配例如
TAG1
text
more text TAG2
但是,在 Emacs 邪恶模式下,只要我输入 \_,我就会收到 Premature end of regular expression 错误消息。其他
搜索没有\_,如
/TAG1\n*TAG2
按预期工作,所以问题出在\_。我尝试过使用邪恶组设置,但无济于事。任何提示问题可能出在哪里?
P.S.:无论我是否使用 GUI,都会出现此问题。在 Vim 中我没有遇到任何问题
【问题讨论】:
-
当表达式只是
\_时匹配什么? -
-通常不需要转义。一些自制引擎使用这样的功能来表示元(例如\<是单词边界的开头) -
当表达式只是
/\_时,它会显示Incomplete input。如果使用_而不转义,则将其视为任何其他字符,如预期的那样:例如/TAG1_s*TAG2找到字符串TAG1_sTAG2(但我要找的是TAG1 TAG2!)