Hi,
ich weiß nicht, ob es daran liegt, das heute Freitag ist, oder ob ich mich gerade nur dumm anstelle, aber ich brauche etwas Hilfe und hoffe auf euer Wissen.
Folgendes Problem:
Ich brauche 2 Werte aus einer Zeile einer Log-Datei.
Szenario:
Ich benötige davon den TYPE und das Value.
Bisher habe ich das ganze mit 2 Regulären Ausdrücken gemacht, aber da die Log-Datei nun langsam etwas größer wird wollte ich die Laufzeit des PHP-Scriptes verringern indem ich die Anzahl der Regulären Ausdrücke halbiere.
Folgenden Ansatz hatte ich:
Ja, TYPE und Value haben wenige feste Werte, daher mit einer einfachen Oder-Abfrage lösbar.
Der angegebene RegEx funktioniert soweit auch, dass er mir die Zeilen ausgibt, wo beide Werte vorhanden sind. Leider benötige ich aber alle Zeilen, auch die, wo der Value nicht enthalten ist, also war mein guter Glaube einfach ein ? ans Ende zu setzen um somit aufzuzeigen, das der Value nicht vorhanden sein muß. Allerdings findet er dann überhaupt keinen Value mehr.
Bin für jeden Tip dankbar, da ich nun schon alles möglich ausprobiert hab und vielleicht den Wald vor lauter Bäumen nicht mehr sehe.
Tschüü... MrCPU
ich weiß nicht, ob es daran liegt, das heute Freitag ist, oder ob ich mich gerade nur dumm anstelle, aber ich brauche etwas Hilfe und hoffe auf euer Wissen.
Folgendes Problem:
Ich brauche 2 Werte aus einer Zeile einer Log-Datei.
Szenario:
Code:
0000-00-00 00:00:00 [TYPE1] Test Test Test Test Value1 Test Test
0000-00-00 00:00:00 [TYPE1] Test Test Test Test Test Test Test
0000-00-00 00:00:00 [TYPE2] Test Test Value2 Test Test Test Test
0000-00-00 00:00:00 [TYPE3] Test Test Test Value3 Test Test Test
0000-00-00 00:00:00 [TYPE1] Test Test Test Test Test Test Test
0000-00-00 00:00:00 [TYPE1] Value2 Test Test Test Test Test Test
0000-00-00 00:00:00 [TYPE2] Test Test Test Test Test Test Test
0000-00-00 00:00:00 [TYPE1] Test Value1 Test Test Test Test Test
Ich benötige davon den TYPE und das Value.
Bisher habe ich das ganze mit 2 Regulären Ausdrücken gemacht, aber da die Log-Datei nun langsam etwas größer wird wollte ich die Laufzeit des PHP-Scriptes verringern indem ich die Anzahl der Regulären Ausdrücke halbiere.
Folgenden Ansatz hatte ich:
Code:
\[(TYPE1|TYPE2|TYPE3)\] .*?(Value1|Value2|Value3)
Ja, TYPE und Value haben wenige feste Werte, daher mit einer einfachen Oder-Abfrage lösbar.
Der angegebene RegEx funktioniert soweit auch, dass er mir die Zeilen ausgibt, wo beide Werte vorhanden sind. Leider benötige ich aber alle Zeilen, auch die, wo der Value nicht enthalten ist, also war mein guter Glaube einfach ein ? ans Ende zu setzen um somit aufzuzeigen, das der Value nicht vorhanden sein muß. Allerdings findet er dann überhaupt keinen Value mehr.
Bin für jeden Tip dankbar, da ich nun schon alles möglich ausprobiert hab und vielleicht den Wald vor lauter Bäumen nicht mehr sehe.
Tschüü... MrCPU