Vim积极的lookahead正则expression式
我仍然不习惯vim regex的语法。 我有这个代码:
rename_column :keywords, :textline_two_id_4, :textline_two_id_4
我想在VIMs正则expression式语法中匹配最后一个id和正向lookahead。
你会怎么做?
\id@=_\d$
这不起作用。
这个Perl语法的作品:
id(?=_\d$)
编辑 – 答案:
/id\(_\d$\)\@=
有人可以解释的语法?
如果你检查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$