Extraire une chaine
ifr38
-
[Dal] Messages postés 6373 Statut Contributeur -
[Dal] Messages postés 6373 Statut Contributeur -
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+
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+
A voir également:
- Extraire une chaine
- Extraire une video youtube - Guide
- Extraire le son d'une vidéo - Guide
- Chaine tnt gratuite sur mobile - Guide
- Extraire texte d'une image - Guide
- Extraire image pdf - Guide
1 réponse
Bonjour,
Pour adapter cela en perl, je ne pourrais pas vous aider. Néanmoins, voici des pistes pour vous :
- Un tutoriel (en VBA mais on s'en fiche, c'est pour la démarche de compréhension) pour déterminer si une IP est valide : ICI
de ce tutoriel il en ressort la règle à appliquer à votre Regex :
- un tutoriel sur l'application des Regex en Perl : https://formation-perl.fr/guide-perl-08.html
Pour adapter cela en perl, je ne pourrais pas vous aider. Néanmoins, voici des pistes pour vous :
- Un tutoriel (en VBA mais on s'en fiche, c'est pour la démarche de compréhension) pour déterminer si une IP est valide : ICI
de ce tutoriel il en ressort la règle à appliquer à votre Regex :
"^((25[0-5]|2[0-4]\d|1?\d?\d)\.){3}(25[0-5]|2[0-4]\d|1?\d?\d)$"
- un tutoriel sur l'application des Regex en Perl : https://formation-perl.fr/guide-perl-08.html
Si tu n'as pas besoin de valider l'adresse IP, mais juste de capturer des chiffres séparés par des points à la suite de https://, tu peux faire bien plus simple :
#!/usr/bin/perl use strict; use warnings; my $st = '[<HTML><HEAD><META URL=https://196.214.79.38"/></HEAD><BODY> Click here </BODY></HTML>]'; if ($st =~ /(((25[0-5]|2[0-4]\d|1?\d?\d)\.){3}(25[0-5]|2[0-4]\d|1?\d?\d))/) { printf("Adresse IP valide détectée : $1\n"); } if ($st =~ /https:\/\/(\d+\.\d+\.\d+\.\d+)/) { printf("chiffres à la suite de http:// " . "séparés par 3 points détectés : $1\n"); }Dal
Qu'entends tu par "valider" l'adresse IP?
Si tu ne te soucies pas cela et que tu veux juste capturer les nombres séparés par 3 points suivant http://, tu peux faire plus simple en capturant justement cela. Cela ne vérifiera pas si l'adresse IP est une adresse pouvant être valide, mais cela sera plus lisible et plus rapide à l'exécution.
Dal