Passer au contenu principal
eLearner.app
Module 8 · Leçon 3 sur 431/32 dans le cours~12 min
Leçons du module (3/4)

Estrarre URL e IP

In testo libero (log, articoli, dump) capita spesso di voler estrarre URL e indirizzi IP. Vediamo pattern robusti per entrambi.

URL http/https

Code
Pattern: https?:\/\/[\w.-]+(?:\:\d+)?(?:\/[^\s]*)?
  • https?:\/\/ -- schema, con la s opzionale.
  • [\w.-]+ -- host (dominio, sottodomini, eventuale localhost).
  • (?:\:\d+)? -- porta opzionale.
  • (?:\/[^\s]*)? -- path opzionale, fino al primo whitespace.

Cattura https://example.com, http://localhost:3000/api/users, https://docs.dev/path?query=value.

IPv4

Un IPv4 e' 4 ottetti decimali separati da punti:

Code
Pattern: \b(?:\d{1,3}\.){3}\d{1,3}\b

Versione "abbastanza buona": accetta anche valori invalidi tipo 999.999.999.999. Per la versione stretta servirebbe alternazione di range (25[0-5]|2[0-4]\d|[01]?\d\d?), che e' molto piu' lunga.

Code
Pattern (stretto): \b(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\b

Precisione contro brevità

Cercare URL o IP richiede di bilanciare la tolleranza del pattern. Un validatore IP rigoroso controlla che ciascun ottetto non superi 255. Un estrattore pratico invece cerca tipicamente pattern semplificati, delegando la validazione fine ad altre funzioni dedicate.

Prova tu

Exercice#regex.m8.l3.e1
Tentatives : 0Chargement…

Trova ogni URL http o https nel testo. Schema + host + path opzionale.

Chargement de l'éditeur…
Afficher l'indice

https? per la s opzionale, [\\w.-]+ per il dominio, e un gruppo (?:\\/[^\\s]*)? per il path opzionale.

Solution disponible après 3 tentatives

Esercizio di ripasso

Exercice#regex.m8.l3.e2
Tentatives : 0Chargement…

Trova ogni IPv4 (4 ottetti decimali separati da punti). Versione permissiva, niente check 0-255.

Chargement de l'éditeur…
Afficher l'indice

Usa (?:\\d{1,3}\\.){3} per ripetere 3 volte 'ottetto + punto', poi \\d{1,3} per l'ultimo.

Solution disponible après 3 tentatives

Sfida aggiuntiva

Exercice#regex.m8.l3.e3
Tentatives : 0Chargement…

Trova tutti gli indirizzi IPv4 del formato `X.X.X.X` (composti da quattro numeri da 1 a 3 cifre separati da punti).

Chargement de l'éditeur…
Afficher l'indice

Usa \b per limitare i confini, (?:\d{1,3}\.){3} per ripetere l'ottetto con punto 3 volte, e infine \d{1,3}.

Solution disponible après 3 tentatives