"Si un ouvrier veut bien faire son travail, il doit d'abord affûter ses outils." - Confucius, "Les Entretiens de Confucius. Lu Linggong"
Page de garde > La programmation > Comment faire correspondre des URL à l'aide d'expressions régulières ?

Comment faire correspondre des URL à l'aide d'expressions régulières ?

Publié le 2024-11-10
Parcourir:215

How to Match URLs Using Regular Expressions?

Correspondance d'URL avec des expressions régulières

Les expressions régulières peuvent être intimidantes au début, mais elles offrent de puissantes capacités de correspondance de modèles pour divers types de données. Dans le contexte de l'extraction d'URL, un modèle flexible est nécessaire pour s'adapter aux variations de formats d'URL.

Une expression régulière robuste capable de capturer des URL avec ou sans protocoles principaux (par exemple, "http://www" ou " www") est :

((https?|ftp)://)? // Optional SCHEME
([a-z0-9 !*(),;?&=$_.-] (:[a-z0-9 !*(),;?&=$_.-] )?@)? // Optional User and Pass
([a-z0-9\-\.]*)\.(([a-z]{2,4})|([0-9]{1,3}\.([0-9]{1,3})\.([0-9]{1,3}))) // Host or IP address
(:[0-9]{2,5})? // Optional Port
(/([a-z0-9 $_%-]\.?) )*/? // Path
(\?[a-z &\$_.-][a-z0-9;:@&%= /$_.-]*)? // Optional GET Query
(#[a-z_.-][a-z0-9 $%_.-]*)? // Optional Anchor

Pour utiliser cette expression en PHP, placez-la entre guillemets doubles et transmettez-la à la fonction preg_match avec l'URL que vous souhaitez évaluer. Par exemple :

$url = 'www.example.com/etcetc';
if (preg_match("~^$regex$~i", $url)) {
    echo 'Matched URL without protocol';
}

De même, pour les URL avec des protocoles :

$url = 'http://www.example.com/etcetc';
if (preg_match("~^$regex$~i", $url)) {
    echo 'Matched URL with protocol';
}

Ce modèle doit couvrir un large éventail de formats d'URL tout en protégeant également contre les entrées malveillantes potentielles contenant des caractères tels que "/".

Déclaration de sortie Cet article est réimprimé à l'adresse : 1729557858. En cas d'infraction, veuillez contacter [email protected] pour le supprimer.
Dernier tutoriel Plus>

Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.

Copyright© 2022 湘ICP备2022001581号-3