regex-cheatsheet
regex-cheatsheet copied to clipboard
Vim \zs and \ze
trafficstars
I apologize in advance; I am a very infrequent vim user, so some of this may need to be double-checked.
\zssets the start of a match.\zesets the end of a match.
Vim's \zs appears to work like PCRE's \K (which discards matched text up to that point):
- PCRE pattern:
s/foo\Kfoo/bar/g - Vim pattern:
:%s/foo\zsfoo/bar/g
Text: foofoofoofoo
Result: foobarfoobar
On the other hand, vim's \ze appears to work more like a lookahead:
- PCRE pattern:
s/foo(?=foo)/bar/g - Vim pattern:
:%s/foo\zefoo/bar/g - Vim's lookahead pattern:
:%s/foo\(foo\)\@=/bar/g
Text: foofoofoofoo
Result: barbarbarfoo
I thought it might be useful to include the \K similarities in your Vim cheatsheet.
This might be worth adding, though I don't know which other dialects have that feature. They also overlap somewhat with the look-around operators.