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));

Verwandte Artikel


Teilen Sie eine Zeichenfolge durch einzelne Leerzeichen

Zachary Goshen Ich habe eine Zeichenfolge: s = "alpha beta gamma delta" Ich versuche, diese Zeichenfolge mit einem einzelnen Leerzeichen als Trennzeichen zu teilen, ohne zusätzliche Leerzeichen zu entfernen, um Folgendes zu erhalten: ["alpha", "beta", "