AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

Delphi TRegExpr

Ein Thema von Jim Carrey · begonnen am 22. Okt 2016 · letzter Beitrag vom 22. Okt 2016
Antwort Antwort
Jim Carrey
(Gast)

n/a Beiträge
 
#1

AW: Delphi TRegExpr

  Alt 22. Okt 2016, 15:40
Dieses Wort höre ich zum ersten mal. Wo stelle ich das denn ein ob es greedy ist oder nicht?
Warte ich bin dumm ich habs. Es dauert aber genau solange.

(.*?) statt (.*) meinst du doch?

Geändert von Jim Carrey (22. Okt 2016 um 15:43 Uhr)
  Mit Zitat antworten Zitat
SProske

Registriert seit: 16. Feb 2015
Ort: Halle/S.
116 Beiträge
 
Delphi 10.2 Tokyo Enterprise
 
#2

AW: Delphi TRegExpr

  Alt 22. Okt 2016, 16:40
Egal ob .* oder .*?, wenn es dir um Performance geht, sollte man beide eigentlich vermeiden. Du wirst aber selbst mit einem hoch-optimierten Regex kaum eine Chance gegen Pos/Posex-Suche haben.

Solltest du also tatsächlich nach
Code:
<!-- DIESEN (.*) MÖCHTE ICH FINDEN -->
suchen, ginge evt. noch so etwas wie:
Code:
<!-- DIESEN ((?>[^ \n\r]+| (?!MÖCHTE ICH FINDEN -->))*) MÖCHTE ICH FINDEN -->
Solltest du hingegen nach
Code:
<!--(.*)-->
suchen (was mir sinnvoller erschiene), ginge dann
Code:
<!--((?>[^-\r\n]+|-(?!->))*)-->
Sebastian
  Mit Zitat antworten Zitat
Jim Carrey
(Gast)

n/a Beiträge
 
#3

AW: Delphi TRegExpr

  Alt 22. Okt 2016, 17:23
Ich hätte noch eine weitere Idee.
Genau genommen geht es hier um Log-Dateien und deren Einträge, welche ich pro-Datum anzeigen lassen möchte.
Also iteriere ich durch die Log-Datei und gucke, ob dieser Eintrag-N zu Datum X passt.
Dafür suche ich mir per RegEx aktuell eben nur die erste und letzte Zeile jedes Log-Eintrags raus.
Die beginnen eben mit <!-- loganfang datum --> und endet mit <!-- logende datum -->
Dann kopiere ich von loganfang bis logende und so bekomme ich alle Logeinträge für Datum X.

Das Zusammenschnippseln geht schnell (< 60ms). Aber das RegEx dauert bei 5 MB und einer Testdatei mit, ich glaube es waren rund 9000 Zeilen mit loganfang und logende eben rund 25 Sekunden.

Jetzt zu meiner Idee.
ich speichere einfach 1 Logdatei pro Tag. Dann brauche ich nur die Datei einzulesen und bin von diesem RegEx komplett weg.
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.361 Beiträge
 
Delphi 12 Athens
 
#4

AW: Delphi TRegExpr

  Alt 22. Okt 2016, 17:41
Da parst jemand 'ne Log-XML? (oder vielleicht doch HTML/XHTML)
Warum nimmt der dann nicht einen XML-SAX-Parser? (nicht XML-DOM ... soll ja schnell gehn)
Ein Therapeut entspricht 1024 Gigapeut.

Geändert von himitsu (22. Okt 2016 um 17:45 Uhr)
  Mit Zitat antworten Zitat
Jim Carrey
(Gast)

n/a Beiträge
 
#5

AW: Delphi TRegExpr

  Alt 22. Okt 2016, 18:49
Nein ich parse nicht die ganze Datei. So gesehen "parse" ich gar nicht.
Sondern ich suche mir nur Anfang und Ende eines Eintrages raus.

HTML ist Pflicht, auf ein anderes Format kann ich nicht umsteigen.
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.361 Beiträge
 
Delphi 12 Athens
 
#6

AW: Delphi TRegExpr

  Alt 22. Okt 2016, 18:57
Doch, du parst und das kann ein Parser für das entsprechende Format immernoch am Besten.
Und bei SAX wird nur Schrittweise vorgegangen und man kann bei Fund abbrechen.
Beim DOM wird der gesamte Inhalt in einen Objekt-Baum geladen.
Ein Therapeut entspricht 1024 Gigapeut.
  Mit Zitat antworten Zitat
Jim Carrey
(Gast)

n/a Beiträge
 
#7

AW: Delphi TRegExpr

  Alt 22. Okt 2016, 19:07
Ich kann aber kein anderes Format verwenden, da ich das Log sonst nicht so anzeigen kann wie es vorgesehen ist - in einem Webbrowser.
Neues Format also nicht möglich.
  Mit Zitat antworten Zitat
Antwort Antwort

Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 03:53 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz