C #, reguläre Ausdrücke: Parsen von durch Kommas getrennten Werten, wobei einige Werte in Anführungszeichen gesetzt werden können und selbst Kommas enthalten

Verwenden Sie in C # dieRegex Klasse, wie parst man kommagetrennte Werte, bei denen einige Werte aus Strings bestehen, die Kommas enthalten?

using System ;
using System.Text.RegularExpressions ;

class  Example
    {
    public static void Main ( )
        {
        string  myString  =  "cat,dog,\"0 = OFF, 1 = ON\",lion,tiger,'R = red, G = green, B = blue',bear" ;
        Console.WriteLine ( "\nmyString is ...\n\t" + myString + "\n" ) ;
        Regex   regex  =  new Regex  (  "(?<=,(\"|\')).*?(?=(\"|\'),)|(^.*?(?=,))|((?<=,).*?(?=,))|((?<=,).*?$)"  )  ;
        Match   match  =  regex.Match ( myString ) ;
        int j = 0 ;
        while ( match.Success )
            {
            Console.WriteLine ( j++ + " \t" + match ) ;
            match  =  match.NextMatch() ;
            }
        }
    }

Die Ausgabe (teilweise) sieht wie folgt aus:

0       cat
1       dog
2       "0 = OFF
3        1 = ON"
4       lion
5       tiger
6       'R = red
7        G = green
8        B = blue'
9       bear

Jedoch,erwünscht Ausgabe ist:

0       cat
1       dog
2       0 = OFF, 1 = ON
3       lion
4       tiger
5       R = red, G = green, B = blue
6       bear

Antworten auf die Frage(9)

Ihre Antwort auf die Frage