a,b,c,d
aaa,2.15,100.15,-
bbb,3.16,215.16,-
ccc,4.10,365.18,-
Ich möchteSo entfernen Sie Spalten CSV Notepad ++/RegEx?
2.15,
3.16,
4.10,
und
,-
,-
,-
I Spalten entfernen möchten entfernen b + d
, [\ w]. *, [\ W].
a,b,c,d
aaa,2.15,100.15,-
bbb,3.16,215.16,-
ccc,4.10,365.18,-
Ich möchteSo entfernen Sie Spalten CSV Notepad ++/RegEx?
2.15,
3.16,
4.10,
und
,-
,-
,-
I Spalten entfernen möchten entfernen b + d
, [\ w]. *, [\ W].
Erfassen Sie einfach alles außer den zwei Spalten.
(Edit: hinzugefügt \r\n
so überspannen keine Linien)
X = vor Col 1: = b-1
Y = vor col 2: = d-1 - X - 1
Ersetzen
(?m)^((?:[^,\r\n]*,){X})[^,\r\n]*,((?:[^,\r\n]*,){Y})[^,\r\n]*(.*)
: finden
$1$2$3
Beispiel -
X = 2-1 (Col 2) = 1
Y = 4-1 - X - 1 (Col 4) = 1
Regex: (?m)^((?:[^,\r\n]*,){1})[^,\r\n]*,((?:[^,\r\n]*,){1})[^,\r\n]*(.*)
oder, falls dies
(?m)^([^,\r\n]*,)[^,\r\n]*,([^,\r\n]*).*
, ist ein 1-off Sache ersetzen verwenden $1$2
die gerade Spalte eliminiert 2 und 4
Sind Sie sicher, dass das funktioniert? Ich konnte es nicht in regex101 oder Notepad ++ arbeiten lassen. Es entspricht nichts. – Andrew
@sln ** Danke ** Ich schätze deine Hilfe sehr ^^ – moon90
Oh, ich schreibe nur (meistens) Sachen, die vom Testen funktionieren. Was speziell nicht funktioniert @Andrew, poste einen Link zu etwas, wenn du kannst. Ich benutze meinen eigenen Offline-Tester/Analyzer. – sln
Suche nur für diese:
(\w+),\d+\.?\d*,(\d+\.?\d*),-
Und ersetzen mit diesem:
$1,$2
Endergebnis:
a,b,c,d
aaa,100.15
bbb,215.16
ccc,365.18
Es unterstützt Zahlen mit oder ohne Dezimalzahlen, beliebig viele Ziffern. Sie müssen es möglicherweise ändern, wenn die erste Spalte Sonderzeichen enthält.
Das bedeutet, du hast mir geholfen, haha. Sie sollten eine Antwort als akzeptiert markieren, wenn sie Ihnen geholfen hat. Wenn Sie die Daten im erwarteten Format validieren möchten, verwenden Sie diese Regex. Wenn Ihnen nur die Anzahl der Spalten wichtig ist, können Sie LukStorms verwenden. – Andrew
Es tut mir leid: Danke, dass du mir geholfen hast :) – moon90
Aber hast du die Option von snn benutzt und es hat funktioniert? Bei deinen Eingabewerten hat es nicht funktioniert. – Andrew
Notepad ++ Lösung:
^(.*?),.*?,(.*?),.*$
$1,$2
. matches newline
)Die Regex wird die erste Stelle setzen und 3. Spalte in Capture-Gruppen.
Die im Ersatz verwendet werden.
** Vielen Dank ** sehr für Ihre Hilfe ^^ – moon90
Ich bin nicht sicher, ob Sie das mit einer Regex tun können, ich denke, es ersetzt das ganze Spiel. Wenn alle Spalten dieselbe Breite haben, können Sie sie mit Alt + Maus auswählen. Wenn nicht, würde ich es mit Excel machen. – Andrew
Bitte formatieren Sie den Post so, dass er lesbar ist. Verwenden Sie den verfügbaren Abschlag. Veröffentlichen Sie ein Beispiel dafür, wie die CSV-Datei vorher und nachher aussehen soll. – Keozon
Sie können versuchen [wie folgt] (https://regex101.com/r/oM8jL3/1). –