regex-cheatsheet
regex-cheatsheet copied to clipboard
Vim \zs and \ze
I apologize in advance; I am a very infrequent vim user, so some of this may need to be double-checked.
-
\zs
sets the start of a match. -
\ze
sets 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.