Teilen Sie die Zeichenfolge durch (') und Leerzeichen, aber lassen Sie alle Leerzeichen zwischen zwei aufeinander folgenden (')
Calarez
Ich muss eine Zeichenfolge durch (' ') oder (''') teilen, aber wenn in der Zeichenfolge ' ' erscheint, möchte ich nur dieses Leerzeichen behalten. Dies sind Beispiele für die Zeichenfolge:
1 7871.6 LIQ WCT GOR THP ' ' FIELD BHP /
1 7871.6 'LIQ' 'WCT' 'GOR' 'THP' ' ' FIELD BHP /
und ich möchte, dass die Ausgabe lautet:
1
7871.6
LIQ
WCT
GOR
THP
FIELD
BHP
/
Jede Hilfe wäre dankbar
Zach Hutchins
So etwas sollte seine Arbeit erledigen.. das heißt, wenn es dir nichts ausmacht, dass dein Kopf von einer Regex explodiert die Regex dafür von https://stackoverflow.com/a/51432792/5963888
var str = "1 7871.6 'LIQ' 'WCT' 'GOR' \"THP\" ' ' 'LIQ WCT GOR' FIELD BHP /";
var regex = new System.Text.RegularExpressions.Regex("([\"'])((?:\\\\1|(?:(?!\\1)).)*)(\\1)");
var match = regex.Matches(str)
.Select(e => e.Groups)
.Select( e => e[2].Value)
.SelectMany( e =>
{
if(!(e.Trim() == String.Empty))
{
return e.Split();
}
return new[] { e };
});
System.Console.WriteLine(String.Join(Environment.NewLine, match));