I am still not so used to the vim regex syntax. I have this code:
rename_column :keywords, :textline_two_id_4, :textline_two_id_4
I would like to match the last id with a positive lookahead in VIMs regex syntax.
How would you do this?
\id@=_\d$
This does not work.
This perl syntax works:
id(?=_\d$)
Edit - the answer:
/id\(_\d$\)\@=
Can someone explain the syntax?
If you check the vim help, there is not much to explain: (: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
This should match the last id:
/id\(_\d$\)\@=
save some back slashes with "very magic":
/\vid(_\d$)@=
actually, it looks more straightforward to use vim's \zs \ze
:
id\ze_\d$
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With