<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://regexadvice.com/utility/FeedStylesheets/atom.xsl" media="screen"?><feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en"><title type="html">Wayne's Regex Rants</title><subtitle type="html" /><id>http://regexadvice.com/blogs/wayneking/atom.aspx</id><link rel="alternate" type="text/html" href="http://regexadvice.com/blogs/wayneking/default.aspx" /><link rel="self" type="application/atom+xml" href="http://regexadvice.com/blogs/wayneking/atom.aspx" /><generator uri="http://communityserver.org" version="2.1.60809.935">Community Server</generator><updated>2004-01-12T20:08:00Z</updated><entry><title>Why look around?</title><link rel="alternate" type="text/html" href="http://regexadvice.com/blogs/wayneking/archive/2004/08/20/274.aspx" /><id>http://regexadvice.com/blogs/wayneking/archive/2004/08/20/274.aspx</id><published>2004-08-20T22:05:00Z</published><updated>2004-08-20T22:05:00Z</updated><content type="html">&lt;P&gt;There have been a number of posts and replies for 'killer' reasons for lookaround (starting with Darren's &lt;A href="http://regexadvice.com/blogs/dneimke/archive/2004/08/03/1432.aspx"&gt;query&lt;/A&gt;), and I want to drop a few thoughts into the fray.&lt;/P&gt;
&lt;P&gt;1. To do the work of multiple&amp;nbsp;regexes, but within a single regex.&amp;nbsp; &lt;A href="http://regexadvice.com/blogs/dneimke/archive/2004/08/03/1432.aspx#1471"&gt;Michael Ash&lt;/A&gt;&amp;nbsp;and &lt;A href="http://regexadvice.com/blogs/Justin_Rogers/archive/2004/08/04/208473.aspx"&gt;Justin&lt;/A&gt; both hinted at this, demonstrating if not explicitly calling it out as such.&amp;nbsp; A fine example of this would seem to be&amp;nbsp;a password validation regex, such as &amp;#8220;verify at least 8 characters, and includes at least one digit, one letter, and one symbol&amp;#8221;.&amp;nbsp; Use lookaround to test each independent and possibly overlapping&amp;nbsp;requirement.&amp;nbsp; The length requirement needs to look at every single character, so it overlaps with each other requirement; the one-character requirements overlap with each other because they may appear in any order.&lt;/P&gt;
&lt;STYLE&gt;pre.wek {padding-left:10px; font-size:8pt; background-color:#eeffee} pre.near {margin-top:0px; margin-bottom:0px}&lt;/STYLE&gt;

&lt;P&gt;One way:&lt;PRE class="wek near"&gt;(?=.*\d)(?=.*[a-z])(?=.*[!@#$%]).*{8,}&lt;/PRE&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;Alas, this isn't a 'killer' reason and I concede it is possible to compose an equivalent pattern without the use of lookahead, but it would be insane.&lt;/P&gt;
&lt;P&gt;2. To force a lazy match to occur.&amp;nbsp; Michael Ash &lt;A href="http://regexadvice.com/blogs/dneimke/archive/2004/08/03/1432.aspx#1450"&gt;hinted&lt;/A&gt; at this in his mention of entity-replacement.&amp;nbsp; Given input like:&lt;PRE class="wek near"&gt;&amp;lt;tag1&amp;gt; lorem ipsum &amp;lt;a href=a&amp;gt;alpha&amp;lt;/a&amp;gt; &amp;lt;a href=b&amp;gt;beta&amp;lt;/a&amp;gt;
&amp;lt;tag2&amp;gt; lorem ipsum &amp;lt;a href=z&amp;gt;zed&amp;lt;/a&amp;gt;   &amp;lt;a href=y&amp;gt;why&amp;lt;/a&amp;gt;&lt;/PRE&gt;where the number of links may vary, zero or more.&amp;nbsp; Acquire the text of each link, but only of the set of links that follow the &amp;lt;tag&amp;gt;.
&lt;P&gt;&lt;/P&gt;Here's the pattern I used:&lt;PRE class="wek near"&gt;&amp;lt;tag(?'tag'\d) .*? (?=&amp;lt;a|&amp;lt;tag) (&amp;lt;a[^&amp;gt;]*&amp;gt; ('text'[^&amp;lt;]*) &amp;lt;/a&amp;gt;)*

RegexOptions.Singleline, IgnorePatternWhitespace, ExplicitCapture&lt;/PRE&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;Is there an assertionless way?&lt;/P&gt;
&lt;P style="FONT-WEIGHT: bold; FONT-SIZE: 8pt; COLOR: firebrick; FONT-STYLE: italic; FONT-FAMILY: Tahoma"&gt;-Wayne&lt;/P&gt;
&lt;div class = "shareblock"&gt;&lt;strong&gt;Share this post:&lt;/strong&gt; &lt;a href = "mailto:?body=Thought you might like this: http://regexadvice.com/blogs/wayneking/archive/2004/08/20/274.aspx&amp;amp;;subject=Why+look+around%3f" target="_blank" title = "Post http://regexadvice.com/blogs/wayneking/archive/2004/08/20/274.aspx"&gt;email it!&lt;/a&gt; |  &lt;a href = "http://del.icio.us/post?url=http://regexadvice.com/blogs/wayneking/archive/2004/08/20/274.aspx&amp;amp;;title=Why+look+around%3f" target="_blank" title = "Post http://regexadvice.com/blogs/wayneking/archive/2004/08/20/274.aspx"&gt;bookmark it!&lt;/a&gt; |  &lt;a href = "http://www.digg.com/submit?url=http://regexadvice.com/blogs/wayneking/archive/2004/08/20/274.aspx&amp;amp;;phase=2" target="_blank" title = "Post http://regexadvice.com/blogs/wayneking/archive/2004/08/20/274.aspx"&gt;digg it!&lt;/a&gt; |  &lt;a href = "http://reddit.com/submit?url=http://regexadvice.com/blogs/wayneking/archive/2004/08/20/274.aspx&amp;amp;title=Why+look+around%3f" target="_blank" title = "Post http://regexadvice.com/blogs/wayneking/archive/2004/08/20/274.aspx"&gt;reddit!&lt;/a&gt; |  &lt;a href = "http://www.dotnetkicks.com/submit/?url=http://regexadvice.com/blogs/wayneking/archive/2004/08/20/274.aspx&amp;amp;;title=Why+look+around%3f" target="_blank" title = "Post http://regexadvice.com/blogs/wayneking/archive/2004/08/20/274.aspx"&gt;kick it!&lt;/a&gt; |  &lt;a href = "https://favorites.live.com/quickadd.aspx?marklet=1&amp;amp;;mkt=en-us&amp;amp;;url=http://regexadvice.com/blogs/wayneking/archive/2004/08/20/274.aspx&amp;amp;;title=Why+look+around%3f&amp;amp;;top=1" target="_blank" title = "Post http://regexadvice.com/blogs/wayneking/archive/2004/08/20/274.aspx"&gt;live it!&lt;/a&gt;&lt;/div&gt;&lt;img src="http://regexadvice.com/aggbug.aspx?PostID=274" width="1" height="1"&gt;</content><author><name>wayneking</name><uri>http://regexadvice.com/members/wayneking.aspx</uri></author></entry><entry><title>LookAhead LookBehind Subtleties</title><link rel="alternate" type="text/html" href="http://regexadvice.com/blogs/wayneking/archive/2004/04/12/273.aspx" /><id>http://regexadvice.com/blogs/wayneking/archive/2004/04/12/273.aspx</id><published>2004-04-12T23:13:00Z</published><updated>2004-04-12T23:13:00Z</updated><content type="html">&lt;P&gt;&lt;FONT face=Tahoma&gt;Today I came across an example that nicely illustrates the use of a zero-width look-behind assertion. A zero-width assertion is an expression that may match text but does not consume any characters from the input string.&lt;/P&gt;
&lt;P&gt;I wanted to extract an entire &amp;lt;img&amp;gt; tag from a chunk of text, while also verifying that the tag was self-closed. A starting pattern might look like this: 
&lt;STYLE&gt;p {font-family:Tahoma,sans-serif} code {font-size:smaller} pre {padding-left:10px; font-size:8pt; background-color:#eeffee} pre.near {margin-top:0px; margin-bottom:0px}&lt;/STYLE&gt;
&lt;PRE class=near&gt;&amp;lt;img [^/]* /&amp;gt;&lt;/PRE&gt;That will work except for the occasional img tag that includes an embedded forward-slash. 
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;One way to correct for that while keeping the pattern nice and simple is to use a zero-width assertion. Applying a look-ahead assertion would produce:&lt;PRE class=near&gt;&amp;lt;img [^&amp;gt;]* (?=/)&amp;gt;&lt;/PRE&gt;But that doesn't quite work. When applied to the sample text:&lt;PRE class=near&gt;&amp;lt;img src='foo' /&amp;gt;&lt;/PRE&gt;the character class will consume characters up-to and including the forward-slash. Then the assertion is applied and 'looks ahead' for a forward-slash, but it finds only the greater-than, and so fails. 
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;The solution then, is to look &lt;I&gt;backward&lt;/I&gt; to find the forward-slash:&lt;PRE class=near&gt;&amp;lt;img [^&amp;gt;]* (?&amp;lt;=/)&amp;gt;&lt;/PRE&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P style="FONT-SIZE: smaller"&gt;Note: The regex patterns above include extra spaces in them to make them more readable; remove the spaces or apply the 'IgnorePatternWhitespace' option when using them.&lt;/P&gt;
&lt;P style="FONT: bold italic 8pt normal Tahoma; COLOR: firebrick"&gt;-Wayne&lt;/P&gt;
&lt;HR&gt;

&lt;P&gt;Taking another look at this, I see I got carried away with using the 'cool' look-behind functionality. For the specific problem I was trying to solve &amp;#8212; that is, extract an entire &amp;lt;img&amp;gt; tag from a chunk of text while also verifying that the tag is self-closed &amp;#8212; use of the look-behind feature is overkill. This 'traditional' regex will do that:&lt;PRE class=near&gt;&amp;lt;img [^&amp;gt;]* /&amp;gt;&lt;/PRE&gt;
&lt;P&gt;&lt;/P&gt;&lt;/FONT&gt;
&lt;div class = "shareblock"&gt;&lt;strong&gt;Share this post:&lt;/strong&gt; &lt;a href = "mailto:?body=Thought you might like this: http://regexadvice.com/blogs/wayneking/archive/2004/04/12/273.aspx&amp;amp;;subject=LookAhead+LookBehind+Subtleties" target="_blank" title = "Post http://regexadvice.com/blogs/wayneking/archive/2004/04/12/273.aspx"&gt;email it!&lt;/a&gt; |  &lt;a href = "http://del.icio.us/post?url=http://regexadvice.com/blogs/wayneking/archive/2004/04/12/273.aspx&amp;amp;;title=LookAhead+LookBehind+Subtleties" target="_blank" title = "Post http://regexadvice.com/blogs/wayneking/archive/2004/04/12/273.aspx"&gt;bookmark it!&lt;/a&gt; |  &lt;a href = "http://www.digg.com/submit?url=http://regexadvice.com/blogs/wayneking/archive/2004/04/12/273.aspx&amp;amp;;phase=2" target="_blank" title = "Post http://regexadvice.com/blogs/wayneking/archive/2004/04/12/273.aspx"&gt;digg it!&lt;/a&gt; |  &lt;a href = "http://reddit.com/submit?url=http://regexadvice.com/blogs/wayneking/archive/2004/04/12/273.aspx&amp;amp;title=LookAhead+LookBehind+Subtleties" target="_blank" title = "Post http://regexadvice.com/blogs/wayneking/archive/2004/04/12/273.aspx"&gt;reddit!&lt;/a&gt; |  &lt;a href = "http://www.dotnetkicks.com/submit/?url=http://regexadvice.com/blogs/wayneking/archive/2004/04/12/273.aspx&amp;amp;;title=LookAhead+LookBehind+Subtleties" target="_blank" title = "Post http://regexadvice.com/blogs/wayneking/archive/2004/04/12/273.aspx"&gt;kick it!&lt;/a&gt; |  &lt;a href = "https://favorites.live.com/quickadd.aspx?marklet=1&amp;amp;;mkt=en-us&amp;amp;;url=http://regexadvice.com/blogs/wayneking/archive/2004/04/12/273.aspx&amp;amp;;title=LookAhead+LookBehind+Subtleties&amp;amp;;top=1" target="_blank" title = "Post http://regexadvice.com/blogs/wayneking/archive/2004/04/12/273.aspx"&gt;live it!&lt;/a&gt;&lt;/div&gt;&lt;img src="http://regexadvice.com/aggbug.aspx?PostID=273" width="1" height="1"&gt;</content><author><name>wayneking</name><uri>http://regexadvice.com/members/wayneking.aspx</uri></author></entry><entry><title>Speaking of Pronunciation</title><link rel="alternate" type="text/html" href="http://regexadvice.com/blogs/wayneking/archive/2004/02/01/272.aspx" /><id>http://regexadvice.com/blogs/wayneking/archive/2004/02/01/272.aspx</id><published>2004-02-01T19:27:00Z</published><updated>2004-02-01T19:27:00Z</updated><content type="html">&lt;P&gt;&lt;FONT face=Tahoma&gt;I imagine that most people agree that 'regex' is better than 'regexp' when choosing an abbreviated word for 'regular expression'.&amp;nbsp; It's just easier to articulate without that troublesome letter &lt;U&gt;p&lt;/U&gt;.&amp;nbsp; However, it still leaves pronunciation of the letter &lt;U&gt;g&lt;/U&gt; open to debate.&lt;/P&gt;
&lt;P&gt;I think the letter &lt;U&gt;g&lt;/U&gt; should be soft, not hard.&amp;nbsp; Or, via a pronunciation guide, it should be /r&amp;#233;jeks/, not /r&amp;#233;geks/.&lt;/P&gt;
&lt;P&gt;The intent is that it should be easy to pronounce, right?&amp;nbsp; Well, to my palate, the soft &lt;U&gt;g&lt;/U&gt; is easier and rolls of the tongue better than a hard &lt;U&gt;g&lt;/U&gt;.&amp;nbsp; The hard &lt;U&gt;g&lt;/U&gt; causes a halt that seems a bit akin to a stammer.&lt;/P&gt;
&lt;P style="FONT: bold italic 8pt Tahoma; COLOR: firebrick"&gt;-Wayne&lt;/P&gt;&lt;/FONT&gt;
&lt;div class = "shareblock"&gt;&lt;strong&gt;Share this post:&lt;/strong&gt; &lt;a href = "mailto:?body=Thought you might like this: http://regexadvice.com/blogs/wayneking/archive/2004/02/01/272.aspx&amp;amp;;subject=Speaking+of+Pronunciation" target="_blank" title = "Post http://regexadvice.com/blogs/wayneking/archive/2004/02/01/272.aspx"&gt;email it!&lt;/a&gt; |  &lt;a href = "http://del.icio.us/post?url=http://regexadvice.com/blogs/wayneking/archive/2004/02/01/272.aspx&amp;amp;;title=Speaking+of+Pronunciation" target="_blank" title = "Post http://regexadvice.com/blogs/wayneking/archive/2004/02/01/272.aspx"&gt;bookmark it!&lt;/a&gt; |  &lt;a href = "http://www.digg.com/submit?url=http://regexadvice.com/blogs/wayneking/archive/2004/02/01/272.aspx&amp;amp;;phase=2" target="_blank" title = "Post http://regexadvice.com/blogs/wayneking/archive/2004/02/01/272.aspx"&gt;digg it!&lt;/a&gt; |  &lt;a href = "http://reddit.com/submit?url=http://regexadvice.com/blogs/wayneking/archive/2004/02/01/272.aspx&amp;amp;title=Speaking+of+Pronunciation" target="_blank" title = "Post http://regexadvice.com/blogs/wayneking/archive/2004/02/01/272.aspx"&gt;reddit!&lt;/a&gt; |  &lt;a href = "http://www.dotnetkicks.com/submit/?url=http://regexadvice.com/blogs/wayneking/archive/2004/02/01/272.aspx&amp;amp;;title=Speaking+of+Pronunciation" target="_blank" title = "Post http://regexadvice.com/blogs/wayneking/archive/2004/02/01/272.aspx"&gt;kick it!&lt;/a&gt; |  &lt;a href = "https://favorites.live.com/quickadd.aspx?marklet=1&amp;amp;;mkt=en-us&amp;amp;;url=http://regexadvice.com/blogs/wayneking/archive/2004/02/01/272.aspx&amp;amp;;title=Speaking+of+Pronunciation&amp;amp;;top=1" target="_blank" title = "Post http://regexadvice.com/blogs/wayneking/archive/2004/02/01/272.aspx"&gt;live it!&lt;/a&gt;&lt;/div&gt;&lt;img src="http://regexadvice.com/aggbug.aspx?PostID=272" width="1" height="1"&gt;</content><author><name>wayneking</name><uri>http://regexadvice.com/members/wayneking.aspx</uri></author></entry><entry><title>A Split Approach</title><link rel="alternate" type="text/html" href="http://regexadvice.com/blogs/wayneking/archive/2004/01/12/271.aspx" /><id>http://regexadvice.com/blogs/wayneking/archive/2004/01/12/271.aspx</id><published>2004-01-13T01:08:00Z</published><updated>2004-01-13T01:08:00Z</updated><content type="html">&lt;P&gt;&lt;FONT face=Tahoma&gt;Ahh, my first blog entry...&lt;/P&gt;
&lt;STYLE&gt;p {font-family:Tahoma,sans-serif} code {font-size:smaller} pre {padding-left:10px; font-size:8pt; background-color:#eeffee} pre.near {margin-top:0px; margin-bottom:0px}&lt;/STYLE&gt;

&lt;P&gt;The &lt;CODE&gt;Regex.Split()&lt;/CODE&gt; method offers a clean way to break a delimited string of text into substrings.&amp;nbsp; Its advantage over the standard &lt;CODE&gt;String.Split()&lt;/CODE&gt; method is that you can use a delimiter that is variable or not precisely known.&amp;nbsp; A simple example&amp;nbsp;suited for regex is a comma-delimited list where the delimiter may or may not be followed by a&amp;nbsp;space, as:&lt;/P&gt;&lt;PRE&gt;string[] fields = Regex.Split(delimitedList, ", ?");&lt;/PRE&gt;
&lt;P&gt;There are times, however, when the Split method is not the best choice for splitting a string.&amp;nbsp; Consider a comma-delimited string; where each&amp;nbsp;field may be surrounded by quotes, and when quoted the field may contain embedded commas.&amp;nbsp; Example:&lt;PRE class=near&gt;Mister King,"123rd St, Redmond",425-555-1234&lt;/PRE&gt;and the split should produce:&lt;PRE class=near&gt;[0] =&amp;gt; Mister King
[1] =&amp;gt; "123rd St, Redmond"
[2] =&amp;gt; 425-555-1234&lt;/PRE&gt;
&lt;P&gt;To use the &lt;CODE class=in&gt;Regex.Split()&lt;/CODE&gt; method, you would need to figure out some way to match a comma, except when it is within an opening-quote and a closing-quote. While it may be possible to devise such a pattern, it would be pretty tricky and certainly more complex than an alternative approach.&amp;nbsp; That alternative approach&amp;nbsp;is to use the &lt;CODE class=in&gt;Regex.Matches()&lt;/CODE&gt; method with a pattern that explicitly matches each field instead of each&amp;nbsp;delimiter.&lt;/P&gt;&lt;PRE&gt;Regex rex = new Regex(
      //match quoted text if possible
      //otherwise match until a comma is found
      @"  ""[^""]*""  |  [^,]+  ",
      RegexOptions.IgnorePatternWhitespace);
int i=0;
foreach(Match m in rex.Matches(delimitedList))
   Console.WriteLine("[{0}] =&amp;gt; {1}", i++, m.Value);&lt;/PRE&gt;
&lt;P&gt;If more than one delimeter is possible (e.g., commas or semi-colons), or if more than one set of quotes are possible (e.g., double-quotes or single-quotes), it is easy enough to enhance the pattern:&lt;/P&gt;&lt;PRE&gt;      @" ""[^""]*""  |  '[^']*'  |  [^,;]+ "&lt;/PRE&gt;
&lt;HR&gt;

&lt;P&gt;But, it gets a little tricky if you need to allow for empty fields, such as input like:&lt;PRE class=near&gt;Mister King,,425-555-1234&lt;/PRE&gt;
&lt;P&gt;A la,&lt;/P&gt;&lt;PRE&gt;Regex rex = new Regex(
      @" &lt;FONT color=orangered&gt;(?: ,|^ )&lt;/FONT&gt;  ( ""[^""]*""  |  [^,]&lt;FONT color=orangered&gt;*&lt;/FONT&gt; )  ",
      RegexOptions.IgnorePatternWhitespace);
int i=0;
foreach(Match m in rex.Matches(delimitedList))
   Console.WriteLine("[{0}] =&amp;gt; {1}", i++, m&lt;FONT color=orangered&gt;.Groups[1]&lt;/FONT&gt;.Value);&lt;/PRE&gt;
&lt;P&gt;We now match both the delimiter and the field that immediately follows it.&amp;nbsp; To accomplish that, the first&amp;nbsp;grouping in the pattern matches either a comma (the delimiter), or the beginning of input (the first field does not have a delimeter preceding it, so we have to match beginning of input).&amp;nbsp; When we extract the fields from the collection of matches, then, we just need to ignore the delimiters we've matched.&amp;nbsp; The code above does that by making the delimiter-match a non-capturing group (&lt;CODE&gt;(?: )&lt;/CODE&gt;); and by acquiring the field text from the capturing group instead of the entire text of each match.&lt;/P&gt;
&lt;HR&gt;

&lt;P&gt;The above pattern works for all cases except when the first field is empty.&amp;nbsp; I'll leave dealing with that as a future excercise. &amp;nbsp;Hint: match the entire input with a single match, and capture all the fields into a capturing group.&lt;/P&gt;
&lt;P&gt;The above pattern matches a field and the delimiter that immediately precedes it.&amp;nbsp; A similar approach is to match a field and the delimiter that immediately &lt;EM&gt;follows&lt;/EM&gt; it.&amp;nbsp; Note the similarities of this pattern and code:&lt;/P&gt;&lt;PRE&gt;Regex rex = new Regex(
      @" ( ""[^""]*""  |  [^,]&lt;FONT color=orangered&gt;*&lt;/FONT&gt; )  &lt;FONT color=orangered&gt;(?: ,|$ )&lt;/FONT&gt; ",
      RegexOptions.IgnorePatternWhitespace);
int i=0;
foreach(Match m in rex.Matches(delimitedList))
   Console.WriteLine("[{0}] =&amp;gt; {1}", i++, m&lt;FONT color=orangered&gt;.Groups[1]&lt;/FONT&gt;.Value);&lt;/PRE&gt;
&lt;P&gt;Note this approach doesn't eliminate the empty-field issue.&lt;/P&gt;
&lt;P style="FONT: bold italic 8pt normal Tahoma; COLOR: firebrick"&gt;-Wayne&lt;/P&gt;&lt;/FONT&gt;
&lt;div class = "shareblock"&gt;&lt;strong&gt;Share this post:&lt;/strong&gt; &lt;a href = "mailto:?body=Thought you might like this: http://regexadvice.com/blogs/wayneking/archive/2004/01/12/271.aspx&amp;amp;;subject=A+Split+Approach" target="_blank" title = "Post http://regexadvice.com/blogs/wayneking/archive/2004/01/12/271.aspx"&gt;email it!&lt;/a&gt; |  &lt;a href = "http://del.icio.us/post?url=http://regexadvice.com/blogs/wayneking/archive/2004/01/12/271.aspx&amp;amp;;title=A+Split+Approach" target="_blank" title = "Post http://regexadvice.com/blogs/wayneking/archive/2004/01/12/271.aspx"&gt;bookmark it!&lt;/a&gt; |  &lt;a href = "http://www.digg.com/submit?url=http://regexadvice.com/blogs/wayneking/archive/2004/01/12/271.aspx&amp;amp;;phase=2" target="_blank" title = "Post http://regexadvice.com/blogs/wayneking/archive/2004/01/12/271.aspx"&gt;digg it!&lt;/a&gt; |  &lt;a href = "http://reddit.com/submit?url=http://regexadvice.com/blogs/wayneking/archive/2004/01/12/271.aspx&amp;amp;title=A+Split+Approach" target="_blank" title = "Post http://regexadvice.com/blogs/wayneking/archive/2004/01/12/271.aspx"&gt;reddit!&lt;/a&gt; |  &lt;a href = "http://www.dotnetkicks.com/submit/?url=http://regexadvice.com/blogs/wayneking/archive/2004/01/12/271.aspx&amp;amp;;title=A+Split+Approach" target="_blank" title = "Post http://regexadvice.com/blogs/wayneking/archive/2004/01/12/271.aspx"&gt;kick it!&lt;/a&gt; |  &lt;a href = "https://favorites.live.com/quickadd.aspx?marklet=1&amp;amp;;mkt=en-us&amp;amp;;url=http://regexadvice.com/blogs/wayneking/archive/2004/01/12/271.aspx&amp;amp;;title=A+Split+Approach&amp;amp;;top=1" target="_blank" title = "Post http://regexadvice.com/blogs/wayneking/archive/2004/01/12/271.aspx"&gt;live it!&lt;/a&gt;&lt;/div&gt;&lt;img src="http://regexadvice.com/aggbug.aspx?PostID=271" width="1" height="1"&gt;</content><author><name>wayneking</name><uri>http://regexadvice.com/members/wayneking.aspx</uri></author></entry></feed>