norman: advanced pattern matching

Beitrag lesen

juten morgen!

es soll ein beliebiger logdateieintrag feldweise auseinandergenommen werden. hab arge probleme dafür nen globalen regulären ausdruck zu finden. vielleicht hat von euch einer nen tipp. hier das prog:

my $trenner = " ";

my $string = '61.5.36.153 [03/Sep/2003:01:10:45 +0200]
"GET /index.php HTTP/1.1" 200 2578';

$string =~ /(.*)$trenner([.*]|".*")$trenner([.*]|".*")$trenner(.*)$trenner(.*)/;

print $1 . "\n"; print $2 . "\n"; print $3 . "\n"; print $4 . "\n"; print $5 . "\n";

liefert das:

61.5.36.153
[03/Sep/2003:01:10:45 +0200]
"GET /index.php HTTP/1.1"
200
2578

leider funktioniert der reguläre ausdruck nicht mehr, wenn sich der $string z.b. so ändert:

my $string = '"61.5.36.153" [03/Sep/2003:01:10:45 +0200]
"GET /index.php HTTP/1.1" 200 2578';

gibt es eine möglichkeit den regulären ausdruck so zu standardisieren, das er bei jedem $string matcht und nur der $trenner angegeben werden muss?

schönen dank schonmal
norman