Ich habe die folllowing String und ich möchte es aufgeteilt:Split string - C# - komplizierte
"INSERT INTO test (test, test1, test2, test3) values (@test, @test1, @test2, @test3)";
Die Werte, die ich getrennt sind @Test @ test1 @ test2 @ test3 So kann ich bekommen machen Sie etwas anderes mit jedem
Das ist, was ich bisher so weit habe.
string str = "INSERT INTO test (test, test1, test2, test3) values (@test, @test1, @test2, @test3)"
var pattern = @"(?<[email protected])[^@]*(?=>,)";
foreach (var m in System.Text.RegularExpressions.Regex.Split(str, pattern))
{
Console.WriteLine(m);
}
Dies gibt die gesamte Zeichenfolge:
INSERT INTO test (test, test1, test2, test3) values (@test, @test1, @test2, @test3)
Ich hoffe, dass einige von euch kann mir helfen, weil es das letzte Stift für mein Programm ist zu arbeiten.
Der Punkt ist: Wie kann man die Grenzen bestimmen Wo beginnen und enden diese Werte? Wenn Sie einen Regex verwenden möchten, sollte er wissen, wo er mit dem Matching beginnen soll und wo er enden soll. –
Ich kann es bei @ und at teilen, und bei @ später aber immer noch wie mache ich das. –
Ok, versuche 'Regex.Matches (str, @" @ \ w + ") .Guss() .Wähle (p => p.Wert) .ToList()'. Zu diesem Zeitpunkt sollte Kells Antwort genauso funktionieren. Nun, mit der Ausnahme, dass die Regex nur Wortzeichen nach '@' abgleicht. –