Vim积极向前看正则表达式

时间:2013-08-22 22:14:05

标签: regex vim

我仍然不习惯vim正则表达式语法。我有这段代码:

rename_column :keywords, :textline_two_id_4, :textline_two_id_4

我想在VIM正则表达式语法中将最后一个id与正向前瞻相匹配。

你会怎么做?

\id@=_\d$

这不起作用。

这个perl语法有效:

id(?=_\d$)

编辑 - 答案:

/id\(_\d$\)\@=

有人可以解释语法吗?

1 个答案:

答案 0 :(得分:60)

如果您查看vim帮助,则无需解释:(:h \@=

\@=     Matches the preceding atom with zero width. {not in Vi}
        Like "(?=pattern)" in Perl.
        Example             matches
        foo\(bar\)\@=       "foo" in "foobar"
        foo\(bar\)\@=foo    nothing

这应与最后一个ID匹配:

/id\(_\d$\)\@=

用“非常神奇”来保存一些反斜杠:

/\vid(_\d$)@=

实际上,使用vim的\zs \ze

看起来更直接
id\ze_\d$
相关问题