我仍然不习惯vim正则表达式语法.我有这个代码:
rename_column :keywords, :textline_two_id_4, :textline_two_id_4
Run Code Online (Sandbox Code Playgroud)
我希望在VIM正则表达式语法中将最后一个id与正面预测相匹配.
你会怎么做?
\id@=_\d$
Run Code Online (Sandbox Code Playgroud)
这不起作用.
这个perl语法有效:
id(?=_\d$)
Run Code Online (Sandbox Code Playgroud)
编辑 - 答案:
/id\(_\d$\)\@=
Run Code Online (Sandbox Code Playgroud)
有人可以解释一下语法吗?
Ken*_*ent 65
如果你检查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
Run Code Online (Sandbox Code Playgroud)
这应该匹配最后一个id:
/id\(_\d$\)\@=
Run Code Online (Sandbox Code Playgroud)
用"非常神奇"的方法保存一些反斜杠:
/\vid(_\d$)@=
Run Code Online (Sandbox Code Playgroud)
实际上,使用vim看起来更简单\zs \ze:
id\ze_\d$
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
13115 次 |
| 最近记录: |