Characters classes in ranges - vim
Asked Answered
M

1

11

Given I have the following string:

This is a test {{ string.string.string }}.

And try to perform the following substitution:

%s/{{ [\w\.]\+ }}/substitute/g

It will not work with the error: Pattern not found.

When I use:

%s/{{ [a-zA-Z\.]\+ }}/substitute/g

It works.

Is there a way to use the meta-character-classes in ranges in VIM?

Matteson answered 27/7, 2011 at 13:51 Comment(0)
P
9

You can use:

  • A non capturing sub-expression, see :help E53 (you can use a capturing sub-expression as well, \(\), but the overhead of capturing is useless)

    %s/{{ \%(\w\|\.\)\+ }}/substitute/g
    
  • A sequence of optionally matched atoms - \%[], see :help E70

    %s/{{ \%[\w\.]\+ }}/substitute/g
    
Prude answered 27/7, 2011 at 13:57 Comment(0)

© 2022 - 2024 — McMap. All rights reserved.