How do I tell RegEx (.NET version) to get the smallest valid match instead of the largest?
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.