all So, I'm trying to figure out how to make a simple regex code for Visual Basic.net, but am not getting anywhere.
I'm parsing csv files into a list of array, but the source csv's are anything but pristine. There are extra/rogue quotes in just enough places to crash the program, and enough sets of quotes to make fixing the data manually cumbersome.
I've written in a bunch of error-checking, and it works about 99.99% of the time. However, with 10,000 lines to parse for each folder, that averages one error per set of csv files. Crash. To get that last 0.01% parsed properly, I've created an If statement that will pull out lines that have odd numbers of quotes and remove ALL of them, which triggers a manual error-check If there are zero quotes, the field processes as usual. If there's an even number of quotes, the standard Split function cannot ignore delimiters between quotes without a regex.
Could someone help me figure out a regex string that will ignore fields enclosed in quotes?
Here's the code I've been able to think up up to this point.  
Thank you in advance
Using filereader1 As New Microsoft.VisualBasic.FileIO.TextFieldParser(files_(i),
              System.Text.Encoding.Default) 'system text decoding adds odd characters
    filereader1.TextFieldType = FieldType.Delimited
    'filereader1.Delimiters = New String() {","}
    filereader1.SetDelimiters(",") 
    filereader1.HasFieldsEnclosedInQuotes = True 
    For Each c As Char In whole_string
        If c = """" Then cnt = cnt + 1
    Next
    If cnt = 0 Then 'no quotes
        split_string = Split(whole_string, ",") 'split by commas
    ElseIf cnt Mod 2 = 0 Then 'even number of quotes
         split_string = Regex.Split(whole_string, "(?=(([^""]|.)*""([^""]|.)*"")*([^""]|.)*$)")
    ElseIf cnt <> 0 Then 'odd number of quotes
        whole_string = whole_string.Replace("""", " ") 'delete all quotes
        split_string = Split(whole_string, ",") 'split by commas
    End If
 
     
     
     
    
Input line ___________________________________________________________ LIST,410210,2-4,"PUMP, HYDRAULIC PISTON - MAIN",1,,, _________________ ______________________________________________________ desired output line (delimited at pipes) _________________________ LIST|410210|2-4|"PUMP, HYDRAULIC PISTON - MAIN"|1||| ______________ ________________________________________________________ Current output line (delimited at pipes) ______________________________ LIST|410210|2-4|"PUMP| HYDRAULIC PISTON - MAIN"|1||| – user2175620 Jun 18 '14 at 12:49