emacs贪婪的搜索 - 后退 - 正则表达式

Nec*_*cto 5 regex emacs elisp

如何在emacs中使后向正则表达式搜索变得贪婪?

例如,我有abc 163439 abc我的缓冲区,我运行 M-x search-backward-regexp 以下正则表达式:163439\|3.这个正则表达式总是会在缓冲区中找到"3",但整个长整数都会更新.因为,当它开始搜索时,它首先会遇到'3'.在第二次尝试中,它将从数字内部的"3"的位置开始,并且将省略它.

如何找到最长和最接近的匹配?

所以我的意思是,当它遇到'3'时,我希望它检查匹配的部分是否不是更大匹配的一部分.

dmg*_*dmg 2

我不认为你能做你想做的事。

Emacs search-backward-regexp 搜索与正则表达式匹配的最接近的实例。这与贪婪无关(正则表达式中的贪婪是指当存在小星号运算符或其语法变体 ? 或 + 时匹配尽可能多的字符)。

在您的示例中,emacs 正确找到与您的正则表达式匹配的第一个实例。

--dmg