title: A more efficient Regex or alternative?
body: <p>I have a file with a little over a million lines.</p>
  
  <pre><code> {&lt;uri::rdfserver#null&gt; &lt;uri::d41d8cd98f00b204e9800998ecf8427e&gt; &lt;uri::TickerDailyPriceVolume&gt; "693702"^^&lt;xsd:long&gt;}
   {&lt;uri::rdfserver#null&gt; &lt;uri::d41d8cd98f00b204e9800998ecf8427e&gt; &lt;uri::TickerDailyPriceId&gt; &lt;uri::20fb8f7d-30ef-dd11-a78d-001f29e570a8&gt;}
  </code></pre>
  
  <p>Each line is a statement.</p>
  
  <pre><code>struct Statement
      string C;
      string S;
      string P;
      string O;
      string T;
  </code></pre>
  
  <p>Currently I'm using a TextReader in a while loop and parsing each line with a regular expression:</p>
  
  <pre><code>Regex lineParse = new Regex(@"[^&lt;|\""]*\w[^&gt;\""]*", RegexOptions.Singleline | RegexOptions.Compiled);
  </code></pre>
  
  <p>It takes quite awhile to do this parsing and I'm hoping someone can point me to a more efficient parsing strategy.</p>
  
  <p>Some lines have 5 matchs and some 4.  Here is how each line is parsed:</p>
  
  <pre><code>{&lt;uri::rdfserver#null&gt; &lt;uri::d41d8cd98f00b204e9800998ecf8427e&gt; &lt;uri::TickerDailyPriceVolume&gt; "693702"^^&lt;xsd:long&gt;}
  
  Statement()
      C = uri::rdfserver#null
      S = uri::d41d8cd98f00b204e9800998ecf8427e
      P = uri::TickerDailyPriceVolume
      O = 693702
      T = xsd:long
  
  {&lt;uri::rdfserver#null&gt; &lt;uri::d41d8cd98f00b204e9800998ecf8427e&gt; &lt;uri::TickerDailyPriceId&gt; &lt;uri::20fb8f7d-30ef-dd11-a78d-001f29e570a8&gt;}
  
  Statement()
      C = uri::rdfserver#null
      S = uri::d41d8cd98f00b204e9800998ecf8427e
      P = uri::TickerDailyPriceId
      O = uri::20fb8f7d-30ef-dd11-a78d-001f29e570a8
  </code></pre>
  
  <p>Additional information from the comments: "The poor performance I was seeing is actually due to a conditional break-point that I had set in the code. Without that break-point everything is pretty fast. Still if anyone has any improvement ideas I would be interested" -Eric Schoonover</p>