4

Here is my text:

<span class="c1">Testing "this string"</span>

and I want to end up with this:

<span>Testing "this string"</span>

so I tried to use this regex in Notepad++ to replace with nothing:

 class=".*"

but that matches this:

 class="c1">Testing "this string"

How do I stop that match after one instance of "?

BoltClock
  • 700,868
  • 160
  • 1,392
  • 1,356
Khan
  • 2,912
  • 3
  • 21
  • 21

2 Answers2

15

By default, regular expressions are greedy (and so .* will match as much as it possibly can, which, in your case is c1">Testing "this string). In general, you have two ways of getting around this:

  1. Use a nongreedy (or lazy) modifier (.*?), which will match as little as possible (in your case, just c1). Notepad++ doesn't support lazy modifiers, though.
  2. Specify exactly what you want to match with class="[^"]*", which will match everything that isn't a quote. In general, this is the more optimized solution, as well.
Daniel Vandersluis
  • 91,582
  • 23
  • 169
  • 153
1
class=".*?"

Will make the * lazy.

Ian Henry
  • 22,255
  • 4
  • 50
  • 61