Ich versuche eine Datei zu finden, die durch mehrere Leerzeichen begrenzt ist. Das Problem, das ich habe, ist, dass das erste Feld ein einzelnes Leerzeichen enthalten kann. Wie kann ich dies mit einer Regex übereinstimmen?
ZB:
%Vor%Kann ich diese Zeilen in drei Felder mit einer Regex teilen, indem ich sie durch ein Leerzeichen spalte, aber den einzelnen Platz im ersten Feld zulasse?
Sie können zwei oder mehr Leerzeichen aufteilen:
%Vor%Aber Sie sind wahrscheinlich besser dran, wenn Sie die Länge der Captures dieses regulären Ausdrucks bestimmen:
%Vor%Und dann, um eine einfache Teilstring-Methode zu verwenden, die Ihre Linien in Abschnitte gleicher Länge schneidet.
Also wäre in Ihrem Fall die erste Aufnahme 15 Zeichen lang, die zweite 14 und die Spalte würde 13 haben (aber die letzte ist nicht wirklich wichtig, weshalb sie nicht wirklich erfasst wird). Dann nimmst du die ersten 15, die nächsten 14 und die restlichen Zeichen jeder Zeile und trim
jeweils (entferne Leerzeichen).
Ich denke, am einfachsten ist es, eine Regex zu verwenden, die zwei oder mehr Leerzeichen enthält.
%Vor% Was als ... delimiter ( /
) gefolgt von einem Leerzeichen ( ) gefolgt von einem weiteren Leerzeichen ein- oder mehrmals (
+) gefolgt von dem Endbegrenzer (
/
in meinem Beispiel, ist aber sprachspezifisch).
Setzen Sie einfach regex, um Platz zu finden, und dann ein oder mehrere Leerzeichen, um die Zeichenfolge zu teilen.
Normalerweise ist es bei dieser Art von Dateien am besten, einen Teilstring basierend darauf zu erhalten, wo sich die benötigten Informationen befinden, und ihn dann zu trimmen. Ich sehe Ihre Datei enthält 16 Zeichen vor dem zweiten Feld, Sie können eine Teilzeichenfolge der Länge 16 von Anfang an erhalten, die Ihren gewünschten Text enthalten wird. Sie sollten es trimmen, um nur den Text zu erhalten, den Sie ohne Leerzeichen benötigen.
Wenn das von Ihnen gepostete Abstandsmuster konsistent ist (wenn es sich zwischen verschiedenen Dateien dieser Art nicht ändert), haben Sie auch ein anderes Problem: Was passiert mit längeren Namen?
%Vor%Wenn Sie wirklich eine Regex verwenden möchten, sollten Sie diese Fälle vermeiden.
Tags und Links regex