+ 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 : 226
    Points
    226

    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 396
    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 396
    Points : 3 317
    Points
    3 317
    Billets dans le blog
    1

    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 396
    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 396
    Points : 3 317
    Points
    3 317
    Billets dans le blog
    1

    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
  •