tag:blogger.com,1999:blog-7085941.post-1106792053609405242005-01-26T18:13:00.000-08:002005-01-26T21:29:20.806-08:00Regular expression in C#It is time consuming to build a regular expression. <br />I have a text file as below: <br /> <br />idnameaddressemailfaxpassowrd <br />example: <br />000010034981Mr. Ray BabsMontreal Canada Test@glinknet.com5142842903PassWord <br /> <br />How do I parse it? Note it is possible no value for address, email, fax, or password <br /> <br />Here is the regular expression I built ( 2 hours work) <br /> <br />(?<id>\d+)\(?<name>(.[^]+))\(? <br /><address>()(.[^]+))\(?<email>(.[^]+)())\(?<fax>()(.[^]+))\(?<pdfcode>(.+())) <br /> <br />It retrives the value to groups defined by "?<group>" <br />(<span style="color:#ff6666;">? </span><span style="color:#993300;">()</span><span style="color:#990000;"></span><span style="color:#66cccc;">(.[^]+)</span>) <br /> <br /><strong><span style="color:#ff6666;">Can you find better expression?</span></strong> <br /></address><div align="left"><address>Regex regx = new Regex( @"(?<id>\d+)\(?<name>(.[^]+))\(? <address>()(.[^]+))\(?<email>(.[^]+)())\(?<fax>()(.[^]+))\(?<pdfcode>(.+()))", RegexOptions.IgnoreCase RegexOptions.Singleline RegexOptions.IgnorePatternWhitespace RegexOptions.Compiled ); <br />Match m = regx.Match( line); <br />if ( !m.Success) </address><address>{ </address><address>System.Diagnostics.Debug.WriteLine( line, "Import Text Error"); </address><address>continue; </address><address>} </address><address> </address><address>string id = m.Result( "${id}"); </address><address>string name = m.Result( "${name}"); </address><address>string address = m.Result( "${address}"); </address><address>string email = m.Result( "${email}"); </address><address>string fax = m.Result( "${fax}"); </address><address>string pdfcode = m.Result( "${pdfcode}"); <br /></address><address> <br /> </address></address></div> <br />Joehttp://www.blogger.com/profile/04618327687649458144noreply@blogger.com