Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Regex gesucht (https://www.delphipraxis.net/80126-regex-gesucht.html)

x000x 3. Nov 2006 10:11


Regex gesucht
 
Moin moin,

ich muss eine Textdatei parsen die folgendes Format hat
Code:
214;'WÜ';'Mustermann';'Muster';'D';'Teststr 5';'D';'99999';'Hamburg';1;'M';'2000-01-01 00:00:00';'J';'1998-01-01 00:00:00';12;6;15,29;'B';'12';'';'Sparkasse Testort';'12345678';'1234567';'Beliebiger Text der auch Zeichen wie ; enthalten kann';'1999-01-01 00:00:00';'';0;
Die Felder sind durch ; getrennt. Strings befinden sich in Hochkommas.

Ich suche nun eine Regex um auf jedes einzelne Feld zurgeifen zu können.

3_of_8 3. Nov 2006 10:15

Re: Regex gesucht
 
[^;]{1}[']?(.*?)[']?[$;]{1}

Luckie 3. Nov 2006 10:17

Re: Regex gesucht
 
Sihe dazu auch ExplodeExplode, die Funktion zerlegt dir die Zeile in ein dynamisches Array. Ist in diesem Fall wohl einfachher.

Khabarakh 3. Nov 2006 10:44

Re: Regex gesucht
 
Zitat:

Zitat von 3_of_8
[^;]{1}[']?(.*?)[']?[$;]{1}

Naja, nicht so wirklich.
Code:
(^|;)('([^']*?)'|([^']*?))(?=;)
Schon eher ;) .
Eine Frage bleibt bei den Beispieldaten aber noch offen: Dürfen auch Hochkommata in einem Wert vorkommen, beispielsweise escaped?

@Luckie: Da ; auch mitten im einem Wert vorkommen kann, bleibt einem das Vor-/Nacharbeiten nicht erspart, womit Regexes wahrscheinlich wieder im Vorteil wären.

3_of_8 3. Nov 2006 10:46

Re: Regex gesucht
 
ARGH, ich hab schon zu lange nicht mehr mit dem Zeug gearbeitet.

x000x 3. Nov 2006 12:35

Re: Regex gesucht
 
Erst mal ein Danke an euch.
Zitat:

Zitat von Khabarakh
Eine Frage bleibt bei den Beispieldaten aber noch offen: Dürfen auch Hochkommata in einem Wert vorkommen, beispielsweise escaped?

Ja dürfen. Die sind dann mit \ escaped.
Ich geb euch nochmal ein konkreteres Beispiel.
Code:
'Beliebiger Text der auch Zeichen wie ; oder \' bzw. \\ enthalten kann';'1999-01-01 00:00:00';'';0;

3_of_8 3. Nov 2006 12:39

Re: Regex gesucht
 
Code:
(^|;)('(.*?)'|(.*?))(?=;)

x000x 3. Nov 2006 13:05

Re: Regex gesucht
 
Danke, es funktioniert :-)


Alle Zeitangaben in WEZ +1. Es ist jetzt 06:55 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz