Précédent   Forum du club des développeurs et IT Pro > Autres langages > Perl > Programmation et administration système
Programmation et administration système Vos questions sur les scripts d'administration système, création de compte utilisateur, socket, fork, ping, etc...
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse
 
Outils de la discussion
Publicité
'
Vieux 09/07/2012, 15h24   #1
rahon
 
Homme
Inscription : 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.
rahon est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/07/2012, 16h20   #2
brice45
Membre confirmé
 
Avatar de brice45
 
Homme
Data manager
Inscription : 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 : 227
Points : 227
Bonjour,

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

Code :
$str=~/(http:\/\/.*\")/i
brice45 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/07/2012, 17h28   #3
Lolo78
Membre Expert
 
Homme Laurent R.
Conseil - Consultant en systèmes d'information
Inscription : mai 2012
Messages : 569
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 : 569
Points : 1 119
Points : 1 119
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;
__________________
Sauf mention contraire explicite, les bouts de code que je poste en réponse à une question n'ont pas forcément été testés.
Lolo78 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/07/2012, 21h00   #4
Lolo78
Membre Expert
 
Homme Laurent R.
Conseil - Consultant en systèmes d'information
Inscription : mai 2012
Messages : 569
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 : 569
Points : 1 119
Points : 1 119
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'.
__________________
Sauf mention contraire explicite, les bouts de code que je poste en réponse à une question n'ont pas forcément été testés.
Lolo78 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse
Outils de la discussion

Navigation rapide


Fuseau horaire GMT +2. Il est actuellement 02h57.


 
 
 
 
Partenaires

Hébergement Web