How can I make my match non greedy in vim?

Mark Biek picture Mark Biek · Aug 20, 2009 · Viewed 123.1k times · Source

I have a big HTML file that has lots of markup that looks like this:

<p class="MsoNormal" style="margin: 0in 0in 0pt;">
  <span style="font-size: small; font-family: Times New Roman;">stuff here</span>
</p>

I'm trying to do a Vim search-and-replace to get rid of all class="" and style="" but I'm having trouble making the match ungreedy.

My first attempt was this

%s/style=".*?"//g

but Vim doesn't seem to like the ?. Unfortunately removing the ? makes the match too greedy.

How can I make my match ungreedy?

Answer

Randy Morris picture Randy Morris · Aug 20, 2009

Instead of .* use .\{-}.

%s/style=".\{-}"//g

Also, see :help non-greedy