Regex Non-Greedy (Lazy)

steventnorris picture steventnorris · Dec 12, 2012 · Viewed 24.9k times · Source

I'm attempting to non-greedily parse out TD tags. I'm starting with something like this:

<TD>stuff<TD align="right">More stuff<TD align="right>Other stuff<TD>things<TD>more things

I'm using the below as my regex:

Regex.Split(tempS, @"\<TD[.\s]*?\>");

The records return as below:

""
"stuff<TD align="right">More stuff<TD align="right>Other stuff"
"things"
"more things"

Why is it not splitting that first full result (the one starting with "stuff")? How can I adjust the regex to split on all instances of the TD tag with or without parameters?

Answer

Jason picture Jason · Dec 12, 2012

For non greedy match, try this <TD.*?>