RegEx: Smallest possible match or nongreedy match

Jonathan Allen picture Jonathan Allen · Dec 17, 2009 · Viewed 73.5k times · Source

How do I tell RegEx (.NET version) to get the smallest valid match instead of the largest?

Answer

DMI picture DMI · Dec 17, 2009

For a regular expression like .* or .+, append a question mark (.*? or .+?) to match as few characters as possible. To optionally match a section (?:blah)? but without matching unless absolutely necessary, use something like (?:blah){0,1}?. For a repeating match (either using {n,} or {n,m} syntax) append a question mark to try to match as few as possible (e.g. {3,}? or {5,7}?).

The documentation on regular expression quantifiers may also be helpful.