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
  • 665,005
  • 155
  • 1,345
  • 1,328
Khan
  • 2,752
  • 3
  • 20
  • 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
  • 87,806
  • 20
  • 161
  • 152
1
class=".*?"

Will make the * lazy.

Ian Henry
  • 21,875
  • 4
  • 48
  • 61