norman: advanced pattern matching

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

  1. Moin, moin!

    Ich habe es gerade getestet. Und auch mit dem String, der vor und nach der IP-Adresse um Anführungszeichen ergänzt wurde, klappt es. Wo liegt das Problem?

    Norbert

    1. Moin, moin!

      Ich habe es gerade getestet. Und auch mit dem String, der vor und nach der IP-Adresse um Anführungszeichen ergänzt wurde, klappt es. Wo liegt das Problem?

      Norbert

      sorry, war ein blödes beispiel von mir.

      der reg. ausdruck soll auf alle möglichen logformate matchen (die felder im log können vertauscht werden usw.), ohne das ich das format genau kenne.

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

      mfg
      norman

  2. Moin,

    lies dich da mal rein:
    http://theoryx5.uwinnipeg.ca/CPAN/data/Apache-ParseLog/ParseLog.html det hört sich jut an ;-)

    Viele Grüße, Rolf

    PS: ich bin kein Berlina

    1. fette beute! sieht gut aus für den apache. ich brauche aber ooch ein script wat auf den iis und benutzerdefinierte logs passt.

      norman

      http://theoryx5.uwinnipeg.ca/CPAN/data/Apache-ParseLog/ParseLog.html det hört sich jut an ;-)

      1. fette beute! sieht gut aus für den apache. ich brauche aber ooch ein script wat auf den iis und benutzerdefinierte logs passt.

        hi again,

        evntl Win32 Module?
        http://ppm.activestate.com/PPMPackages/zips/

        CPAN allgemein:
        http://theoryx5.uwinnipeg.ca/CPAN/cpan-search.html

        kiek mal ;-)

        Gruss aus Karlsruhe, Rolf

        norman

        http://theoryx5.uwinnipeg.ca/CPAN/data/Apache-ParseLog/ParseLog.html det hört sich jut an ;-)