using System;
using System.Text.RegularExpressions;
public class Example
{
public static void Main()
{
string pattern = @"(?>(?:(?:^|,|\r?\n)\s*)(?:""[^""\\]*(?:\\[\S\s][^""\\]*)*""(?:\s*(?:(?=,|\r?\n)|$))|[^,]*(?:\s*(?:(?=,)|$))))*?(?>(?:^|,|\r?\n)\s*)\K""([^""\\]*?(?:\\[\S\s][^""\\]*?)*,[^""\\]*(?:\\[\S\s][^""\\]*)*)""";
string input = @"243,""p s"","","","",""Smith, Ph.D."",""11872"",""Canada"","",29,,,"","","","","","",""UT"","",,"",""Bic. Gaspe"",,,,""Dry cliffs"",,"","","","",""47633"","","","","",1938,7,126839
ID,NAME,TITLE,DESCRIPTION,,
PRO1234,""JOHN SMITH"",ENGINEER,""JOHN HAS BEEN WORKING
HARD ON BEING A GOOD
SERVENT.""
PRO1235,""KEITH SMITH"",ENGINEER,""keith, has been working
hard on being a good
servent.""
PRO1235,""KENNY SMITH"",,""keith has been working
hard on being a good
servent.""
PRO1235,""RICK SMITH"",,,";
foreach (Match m in Regex.Matches(input, pattern))
{
Console.WriteLine("'{0}' found at index {1}.", m.Value, m.Index);
}
}
}
Please keep in mind that these code samples are automatically generated and are not guaranteed to work. If you find any syntax errors, feel free to submit a bug report. For a full regex reference for C#, please visit: https://msdn.microsoft.com/en-us/library/system.text.regularexpressions.regex(v=vs.110).aspx