Hallo zusammen,
ich habe mehrere XML-Dateien in einem Verzeichnis, in denen ich einen Teilstring enfernen möchte.
Die XML-Datei hat 2 Zeilen, wobei die 2. Zeile bis zu 30.000 Zeichen beinhalten kann.
Diese Passage fängt mit <col min="2" max="2" und hört mit einem > auf.
Alles was dazwischen zusätzlich geschrieben ist, muss natürlich auch entfernt werden. Dummerweise ist das jedesmal unterschiedlich.
Ich hab mir das mit dem CreateRegularExpression() angeschaut, komme damit aber nicht klar.
Wer kann mir da helfen?
LG Frank
Teilstring entfernen?
-
- Beiträge: 59
- Registriert: 28.12.2006 17:44
- Computerausstattung: Intel 10850K, 16GB RAM
div. andere Rechner... - Wohnort: Nordkirchen
Teilstring entfernen?
PB 5.73 LTS - Win 11 Pro / 64Bit
Re: Teilstring entfernen?
Code: Alles auswählen
EnableExplicit
Define TeilString$,start,ende
TeilString$ = ~"Mein TeilString <col min=\"2\" max=\"2\" irgendwas dazwischen >ist ziemlich lang."
start=FindString(TeilString$,~"<col min=\"2\" max=\"2\"")
If start
ende=FindString(TeilString$,">",start)
If ende
TeilString$=Left(TeilString$,start-1)+Right(TeilString$,Len(TeilString$)-ende)
Debug TeilString$
Else
Debug "Endteil nicht gefunden!"
EndIf
Else
Debug "Startteil nicht gefunden!"
EndIf
Sicher noch verbesserungswürdig, gerade in punkto Geschwindigkeit.
Guten Morgen, das ist ein schöner Tnetennba!
PureBasic 6.21/Windows 11 x64/Ryzen 7900X/32GB RAM/3 TB SSD
Synology DS1821+/DX517, 130.9TB+50.8TB+2TB SSD
PureBasic 6.21/Windows 11 x64/Ryzen 7900X/32GB RAM/3 TB SSD
Synology DS1821+/DX517, 130.9TB+50.8TB+2TB SSD
Re: Teilstring entfernen?
https://regex101.com/r/GRa7wp/1
... falls der zu entfernende Teilstring zwischen <col> und </col> liegt, das ist mir nicht ganz klar.
... falls der zu entfernende Teilstring zwischen <col> und </col> liegt, das ist mir nicht ganz klar.
Win11 x64 | PB 6.20
-
- Beiträge: 6291
- Registriert: 29.08.2004 08:37
- Computerausstattung: Hoffentlich bald keine mehr
- Kontaktdaten:
Re: Teilstring entfernen?
Du willst xml attribute entfernen? Dann solltest du das xml traversieren mit den xml funktionen. RegEx ist dafür nicht geeignet. XML ist keine Reguläre Sprache (Chomsky Hierarchie), somit nichts für Reguläre Ausdrücke.
Siehe auch: https://stackoverflow.com/a/1732454
Für schnelle hacks mag das klappen, aber sauber ist es halt nicht. Reguläre Ausdrücke sind zwar auch keine reinen regulären Ausdrücke mehr, aber dennoch eine schlechte Wahl.
Siehe auch: https://stackoverflow.com/a/1732454
Für schnelle hacks mag das klappen, aber sauber ist es halt nicht. Reguläre Ausdrücke sind zwar auch keine reinen regulären Ausdrücke mehr, aber dennoch eine schlechte Wahl.
Angenommen es gäbe einen Algorithmus mit imaginärer Laufzeit O(i * n), dann gilt O((i * n)^2) = O(-1 * n^2) d.h. wenn man diesen Algorithmus verschachtelt ist er fertig, bevor er angefangen hat.
-
- Beiträge: 59
- Registriert: 28.12.2006 17:44
- Computerausstattung: Intel 10850K, 16GB RAM
div. andere Rechner... - Wohnort: Nordkirchen
Re: Teilstring entfernen?
Moin
Danke #jacdelad, das Teil funzt.
Die Geschwindigkeit ist eigendlich bei dem Teil egal, da maximal 12 Dateien mit je um die 16KB bearbeitet werden sollen.
#DarkDragon, vielen Dank für die Info. Hab's mir gerade unter Favoriten abgespeichert und werd's die Tage mal genauer durcharbeiten.
LG Frank

Danke #jacdelad, das Teil funzt.



Die Geschwindigkeit ist eigendlich bei dem Teil egal, da maximal 12 Dateien mit je um die 16KB bearbeitet werden sollen.
#DarkDragon, vielen Dank für die Info. Hab's mir gerade unter Favoriten abgespeichert und werd's die Tage mal genauer durcharbeiten.

LG Frank
PB 5.73 LTS - Win 11 Pro / 64Bit