我仍然不习惯vim正则表达式语法。我有这段代码:
rename_column :keywords, :textline_two_id_4, :textline_two_id_4
我想在VIM正则表达式语法中将最后一个id与正向前瞻相匹配。
你会怎么做?
\id@=_\d$
这不起作用。
这个perl语法有效:
id(?=_\d$)
编辑 - 答案:
/id\(_\d$\)\@=
有人可以解释语法吗?
答案 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$