extraire une chaine

extraire une chaine - Perl - Programmation

Marsh Posté le 03-10-2014 à 09:03:50    

Bonjour a tous,
 
Je viens vers vous car je débute en perl et je n'arrive pas à résoudre mon problème..
J'ai une chaine :
 
[<HTML><HEAD><META URL=https://196.214.79.38"/></HEAD><BODY> Click here </BODY></HTML>]
 
et je voudrais pouvoir récupérer mon adresse IP uniquement.J'ai bien vu que les regex était super efficace en perl mais je n'arrive pas encore à bien les manier.  
 
Merci,
A+

Reply

Marsh Posté le 03-10-2014 à 09:03:50   

Reply

Marsh Posté le 03-10-2014 à 12:21:13    

Il manque un " avant le https dans l'exemple, sinon le html est faux.
 

Code :
  1. #!/usr/bin/perl
  2. use strict;
  3. use warnings;
  4.  
  5. my $text = '<HTML><HEAD><META URL="https://196.214.79.38"/></HEAD><BODY> Click here </BODY></HTML>';
  6. print $1 if ($text =~ m{\s+url\s*=\s*"https?://(\d{1,3}(\.\d{1,3}){3})"}i);


 
\d{1,3}(\.\d{1,3}){3} qui se décompose en  
\d{1,3} de un a trois chiffres
(...){3} suivi de trois fois
\.\d{1,3} un point suivi de de un a trois chiffres
et on matche ça m{} (plutôt que m// ou //, parce qu'on a des // dans l'expression régulière) dans un contexte ou on a du blanc puis url puis = (éventuellement avec des espaces avant et apres le = ) puis " puis http ou https puis ://, avant, et " après, le tout pas sensible à la casse (le i en fin de m{} )
 
A+,


Message édité par gilou le 03-10-2014 à 12:25:08

---------------
There's more than what can be linked! --    Iyashikei Anime Forever!    --  AngularJS c'est un framework d'engulé!  --
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed