微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

正则表达式 – Vim正面看后面的bug?

文件中输入:
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA

Hello
A

Hello
B

然后使用/搜索内容

\(Hello\n\)\@<=A

在我的Vim版本(7.4,包括补丁:1-582)中,Hello下面的A匹配预期,B不匹配,但第一行上的第446 A匹配.

这也有一些奇怪的行为,如果我用更多的As使线更长,则突出显示632和A.如果我在行的开头引入16个空格,则该行上的第447个和第632个字符匹配.

我的问题是,这是否会影响其他人,这是一个真正的错误还是我的搜索错误

是的,这看起来像一个bug.我可以使用Vim 7.4.608重现,但只能使用认值:set regexpengine = 0自动选择.

要避免此问题,您可以更改全局选项,也可以在模式中明确指定引擎:

\%#=1\(Hello\n\)\@<=A
\%#=2\(Hello\n\)\@<=A

请将此错误报告给vim_dev mailing listits issue tracker.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐