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