Saltar al contenido principal
eLearner.app
Módulo 8 · Lección 3 de 431/32 en el curso~12 min
Lecciones del módulo (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

Ejercicio#regex.m8.l3.e1
Intentos: 0Cargando...

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

Cargando editor...
Mostrar pista

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

Solución disponible después de 3 intentos

Esercizio di ripasso

Ejercicio#regex.m8.l3.e2
Intentos: 0Cargando...

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

Cargando editor...
Mostrar pista

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

Solución disponible después de 3 intentos

Sfida aggiuntiva

Ejercicio#regex.m8.l3.e3
Intentos: 0Cargando...

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

Cargando editor...
Mostrar pista

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

Solución disponible después de 3 intentos