I wie unten einen String haben, das Rohr getrennt ist, hat sie in doppelte Anführungszeichen Zeichenfolge (z. B.: „ANI“)Wie eine Zeichenfolge teilen mit als Rohr abgegrenzt (die nicht in doppelte Anführungszeichen ist
Wie ? ich spalten diese mit Rohrtrennzeichen (die nicht in doppelte Anführungszeichen sind)
511186|"ANI"|"ABCD-102091474|E|EFG"||"2013-07-20 13:47:19.556"
Und gespaltet Werte shoule wie unten sein:
511186
"ANI"
"ABCD-102091474|E|EFG"
"2013-07-20 13:47:19.556"
Jede Hilfe würde geschätzt
EDIT
Die Antwort, die ich akzeptiert, nicht für die Saiten nicht funktioniert, die in doppelten Anführungszeichen hat. Irgendeine Idee, was sollte das Problem sein?
using System.Text.RegularExpressions;
string regexFormat = string.Format(@"(?:^|\{0})(""[^""]*""|[^\{0}]*)", '|');
string[] result = Regex.Matches("111001103|\"E\"|\"BBB\"|\"XXX\"|||10000009|153086649|\"BCTV\"|\"REV\"|||1.00000000|||||\"ABC-BT AD\"|\"\"\"ABC - BT\"\" AD\"|||\"N\"||\"N\"|||\"N\"||\"N",regexFormat)
.Cast<Match>().Select(m => m.Groups[1].Value).ToArray();
foreach(var i in result)
Console.WriteLine(i)
Tag Ihre Frage mit regex und ich bin sicher, dass jemand kommen wird und wahrscheinlich in der Lage, Ihnen einen zu geben, um die Schnur zu teilen, wie Sie wollen. –
Danke, hat das gemacht. – Relativity