Logo Wand.Tools

Générateur d'expressions régulières

Générez et expliquez intelligemment les expressions régulières, prend en charge divers modèles de correspondance courants

Comment utiliser les expressions régulières pour faire correspondre les URL

✅ Formats URL courants

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

📌 Syntaxe du cœur des expressions régulières (pour les URL)

L’expression régulière suivante peut correspondre à la plupart des URL standard :

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

🧪 Exemple Python : Extraire des URL à partir de texte

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)

🌐 Exemple JavaScript : Extraire tous les liens d’une page 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);

☕ Exemple Java : Utiliser Pattern pour faire correspondre les 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());
        }
    }
}

🔎 Optimisation avancée : Un regex de correspondance d’URL plus puissant

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

Ce regex prend en charge :

  • Protocole optionnel (http/https/ftp)
  • www optionnel
  • Domaine de premier niveau (.com/.org/.net/.io, etc.)
  • Numéro de port optionnel (:80, :443, etc.)
  • Chemin et paramètres optionnels (/path?query)

🔍 Scénarios pratiques

  • Extraction de toutes les adresses de lien du HTML d’une page web
  • Capture d’URL dans les fichiers journaux
  • Extraction d’hyperliens à partir de l’historique de discussion, du contenu de documents
  • Extraction d’entrée pour les moteurs de recherche personnalisés