Logo Wand.Tools

Generatore di espressioni regolari

Genera e spiega intelligentemente le espressioni regolari, supporta vari pattern di corrispondenza comuni

Come usare le espressioni regolari per abbinare gli URL

✅ Formati URL comuni

  • http://www.example.com
  • https://example.com/path?query=123
  • ftp://ftp.example.org/resource.txt
  • www.example.com
  • example.com

📌 Sintassi principale delle espressioni regolari (per URL)

La seguente espressione regolare può abbinare la maggior parte degli URL standard:

\b((?:https?|ftp):\/\/)?(?:www\.)?[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}(?:\/[^\s]*)?

🧪 Esempio Python: Estrazione di URL dal testo

import re

text = """
Visit our site at https://www.example.com or follow the docs at http://docs.example.org/page.
Also check ftp://ftp.example.com/file and plain www.test.com or example.net for more.
"""

pattern = r'\b((?:https?|ftp):\/\/)?(?:www\.)?[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}(?:\/[^\s]*)?'
urls = re.findall(pattern, text)
print(urls)

🌐 Esempio JavaScript: Estrazione di tutti i link da una pagina web

const text = `
  Check https://www.example.com, http://example.org, ftp://files.example.net,
  and also www.test.com or just example.co.
`;

const regex = /\b((?:https?|ftp):\/\/)?(?:www\.)?[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}(?:\/[^\s]*)?/g;
const urls = text.match(regex);
console.log(urls);

☕ Esempio Java: Uso di Pattern per abbinare gli URL

import java.util.regex.*;
import java.util.*;

public class URLMatcher {
    public static void main(String[] args) {
        String text = "Visit https://example.com or ftp://ftp.example.org.";
        String regex = "\\b((?:https?|ftp):\\/\\/)?(?:www\\.)?[a-zA-Z0-9.-]+\\.[a-zA-Z]{2,}(?:\\/[^\\s]*)?";
        
        Pattern pattern = Pattern.compile(regex);
        Matcher matcher = pattern.matcher(text);
        
        while (matcher.find()) {
            System.out.println(matcher.group());
        }
    }
}

🔎 Ottimizzazione avanzata: Un regex di abbinamento URL più potente

\b((?:https?|ftp):\/\/)?(?:www\.)?[a-zA-Z0-9.-]+\.(?:[a-zA-Z]{2,})(?::\d{1,5})?(?:\/[^\s]*)?

Questo regex supporta:

  • Protocollo opzionale (http/https/ftp)
  • www opzionale
  • Dominio di primo livello (.com/.org/.net/.io, ecc.)
  • Numero di porta opzionale (:80, :443, ecc.)
  • Percorso e parametri opzionali (/path?query)

🔍 Scenari pratici

  • Estrazione di tutti gli indirizzi di link dall’HTML delle pagine web
  • Cattura di URL nei file di log
  • Estrazione di collegamenti ipertestuali dalla cronologia delle chat, dal contenuto dei documenti
  • Estrazione dell’input per motori di ricerca personalizzati