52 votes

RegEx pour une adresse IP

J'essaie d'extraire la valeur (adresse IP) du wan_ip avec ce code source : Qu'est-ce qui ne va pas ? Je suis sûr que le modèle RegEx est correct.

String input = @"var product_pic_fn=;var firmware_ver='20.02.024';var wan_ip='92.75.120.206';if (parent.location.href != window.location.href)";
Regex ip = new Regex(@"[\b\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}\b");
string[] result = ip.Split(input);

foreach (string bla in result)  
{
  Console.WriteLine(bla);                
}

Console.Read();

4 votes

L'expression mise à part, ne devriez-vous pas regarder Regex.Matches plutôt que Split ?

0 votes

7 votes

999.999.999.999 ?

0voto

asdfgasdfas Points 11
(\d{1,3}\.){3}(\d{1,3})[^\d\.] 

Regardez ça. Cela devrait fonctionner parfaitement

0voto

Une autre variante, en fonction de la façon dont vous voulez traiter le remplissage (par exemple, a.b.c.00 est considéré comme un format invalide) :

^(?25[0-5]|2[0-4][0-9]|[1]?[1-9][1-9]|[1-9]{1}|0{1})(.(?25[0-5]|2[0-4][0-9]|[1]?[1-9][1-9]|[1-9]{1}|0{1})){3}$

-1voto

李鸿章 Points 48

En Python :

>>> ip_regex = r'^{0}\.{0}\.{0}\.{0}$'.format(r'(25[0-5]|(?:2[0-4]|1\d|[1-9])?\d)')
>>> match(ip_regex, '10.11.12.13')
<re.Match object; span=(0, 11), match='10.11.12.13'>
>>> _.groups()
('10', '11', '12', '13')
>>>

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X