Publicité
+ Répondre à la discussion
Affichage des résultats 1 à 4 sur 4
  1. #1

    Homme Profil pro
    Inscrit en
    mai 2011
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : mai 2011
    Messages : 8
    Points : -1
    Points
    -1

    Par défaut expression reguliere perl

    Bonjour à tous,

    j'essaye de faire mumuse avec un fichier de log apache.
    Depuis peu sur PERL, j'ai du mal à réaliser une expression régulière.

    Ex log:
    XX.XX.XX.XX - - [04/Jan/2012:13:38:59 +0100] "GET /css/default.css HTTP/1.1" 200 860 "http://mformation.local/live.php" "Mozilla/5.0 (Linux; U; Android 2.3.4; fr-fr; HTC/Sensation/1.45.163.4 Build/GRJ22) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1"

    J'ai réussi à obtenir les IP, le code 200....,la date..
    Mais je n'arrive pas à afficher le site visité.
    ex: "http://mformation.local/live.php"

    Quelqu'un peut-il me filer un ptit coup de main.
    D'avance merci.

  2. #2
    Membre confirmé Avatar de brice45
    Homme Profil pro
    Data manager
    Inscrit en
    mai 2005
    Messages
    188
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Data manager
    Secteur : Santé

    Informations forums :
    Inscription : mai 2005
    Messages : 188
    Points : 204
    Points
    204

    Par défaut

    Bonjour,

    Essaie cette expression rég. ça devrait marcher :

    Code :
    $str=~/(http:\/\/.*\")/i

  3. #3
    Expert Confirmé

    Homme Profil pro Laurent R.
    Conseil - Consultant en systèmes d'information
    Inscrit en
    mai 2012
    Messages
    1 196
    Détails du profil
    Informations personnelles :
    Nom : Homme Laurent R.
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : mai 2012
    Messages : 1 196
    Points : 2 518
    Points
    2 518

    Par défaut

    Je ne pense pas que ça marchera, parce que ça va capturer toute la fin de la ligne jusqu'au "Safari/533.1" final, parce que l'opérateur * est "glouton".

    Je verrais plutôt ceci :

    Code :
    $str =~ /(http:\/\/[^"]+)/i;
    Mes articles sur La programmation fonctionnelle en Perl publiés sur ce site:

    ________
    Sauf mention contraire explicite, les bouts de code que je poste en réponse à une question n'ont pas forcément été testés.

  4. #4
    Expert Confirmé

    Homme Profil pro Laurent R.
    Conseil - Consultant en systèmes d'information
    Inscrit en
    mai 2012
    Messages
    1 196
    Détails du profil
    Informations personnelles :
    Nom : Homme Laurent R.
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : mai 2012
    Messages : 1 196
    Points : 2 518
    Points
    2 518

    Par défaut

    Entre temps, j'ai testé, je confirme ce que je disais. L'expression régulière de Brice capture tout le reste de la ligne, tandis que la mienne capture bien 'http://mformation.local/live.php'.
    Mes articles sur La programmation fonctionnelle en Perl publiés sur ce site:

    ________
    Sauf mention contraire explicite, les bouts de code que je poste en réponse à une question n'ont pas forcément été testés.

Liens sociaux

Règles de messages

  • Vous ne pouvez pas créer de nouvelles discussions
  • Vous ne pouvez pas envoyer des réponses
  • Vous ne pouvez pas envoyer des pièces jointes
  • Vous ne pouvez pas modifier vos messages
  •