我仍然不太习惯 vim 正则表达式语法。我有这个代码:
rename_column :keywords, :textline_two_id_4, :textline_two_id_4
我想将最后一个 id 与 VIM 正则表达式语法中的积极前瞻相匹配。
你会怎么做?
\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$