La programmation a facilité le traitement des données textuelles structurées et non structurées. Des outils tels que les expressions régulières et les bibliothèques externes facilitent grandement ces tâches.
Vous pouvez utiliser la plupart des langages, y compris Python et JavaScript, pour valider des URL à l’aide d’une expression régulière. Cet exemple de regex n’est pas parfait, mais vous pouvez l’utiliser pour vérifier des URL dans des cas d’utilisation simples.
La regex pour valider une URL présentée dans cet article n’est pas parfaite. Il peut y avoir plusieurs exemples d’URL valides qui peuvent échouer à la validation de cette regex. Il s’agit notamment d’URL impliquant des adresses IP, des caractères non ASCII et des protocoles tels que FTP. La regex suivante ne valide que les URL les plus courantes.
Expression régulière pour valider une URL
La regex considère qu’une URL est valide si elle remplit les conditions suivantes :
- La chaîne doit commencer par http ou https suivi de ://.
- La longueur combinée du sous-domaine et du domaine racine doit être comprise entre 2 et 256. Elle ne doit contenir que des caractères alphanumériques et/ou des caractères spéciaux.
- Le TLD (Top-Level Domain) ne doit contenir que des caractères alphabétiques et sa longueur doit être comprise entre deux et six caractères.
- La fin de la chaîne URL peut contenir des caractères alphanumériques et/ou des caractères spéciaux. Elle peut se répéter zéro ou plusieurs fois.
Vous pouvez valider une URL en JavaScript en utilisant l’expression régulière suivante :
^(http(s):\/\/.)[-a-zA-Z0-9@:%._\+~#=]{2,256}\.[a-z]{2,6}\b([-a-zA-Z0-9@:%_\+.~#?&//=]*)$
De même, vous pouvez utiliser l’expression régulière suivante pour valider une URL en Python :
^((http|https)://)[-a-zA-Z0-9@:%._\\+~#?&//=]{2,256}\\.[a-z]{2,6}\\b([-a-zA-Z0-9@:%._\\+~#?&//=]*)$
Où :
- (http|https)://) s’assure que la chaîne commence par http ou https suivi de ://.
- [-a-zA-Z0-9@:%._\\+~#?&//=] indique des caractères alphanumériques et/ou des caractères spéciaux. La première instance de cet ensemble représente l’ensemble des caractères à autoriser dans les parties du sous-domaine et du domaine racine. La deuxième instance de cet ensemble représente l’ensemble des caractères à autoriser dans la partie chaîne de requête ou sous-répertoire.
- {2,256} représente 2 à 256 (les deux inclus) fois l’indicateur d’occurrence. Cela indique que la longueur combinée du sous-domaine et du domaine doit être comprise entre 2 et 256.
- \. représente le caractère point.
- [a-z]{2,6} désigne toutes les lettres minuscules de a à z dont la longueur est comprise entre deux et six. Il s’agit de l’ensemble des caractères à autoriser dans la partie du domaine de premier niveau.
- \b représente la limite d’un mot, c’est-à-dire le début ou la fin d’un mot.
- * est un opérateur de répétition qui indique zéro ou plusieurs copies de la chaîne de requête, des paramètres ou des sous-répertoires.
- ^ et $ indiquent respectivement le début et la fin de la chaîne.
Si vous n’êtes pas à l’aise avec l’expression ci-dessus, consultez d’abord un guide d’initiation aux expressions régulières. Il faut un certain temps pour s’habituer aux expressions régulières. L’étude d’exemples tels que la validation des détails d’un compte utilisateur à l’aide d’expressions régulières devrait vous aider.
L’expression rationnelle ci-dessus satisfait les types d’URL suivants :
- https://www.something.com/
- http://www.something.com/
- https://www.something.edu.co.in
- http://www.url-with-path.com/path
- https://www.url-with-querystring.com/?url=has-querystring
- http://url-without-www-subdomain.com/
- https://mail.google.com
Utilisation de l’expression régulière dans un programme
Le code utilisé dans ce projet est disponible dans un dépôt GitHub et est libre d’utilisation sous la licence MIT.
Voici une approche Python de la validation d’une URL :
import re
def validateURL(url):
regex = "^((http|https)://)[-a-zA-Z0-9@:%._\\+~#?&//=]{2,256}\\.[a-z]{2,6}\\b([-a-zA-Z0-9@:%._\\+~#?&//=]*)$"
r = re.compile(regex)
if (re.search(r, url)):
print("Valid")
else:
print("Not Valid")
url1 = "https://www.linkedin.com/"
validateURL(url1)
url2 = "http://apple"
validateURL(url2)
url3 = "iywegfuykegf"
validateURL(url3)
url4 = "https://w"
validateURL(url4)
Ce code utilise la fonction re.compile() La méthode re.compile permet de compiler le motif d’expression régulière. Cette méthode accepte le motif regex en tant que paramètre chaîne et renvoie un objet motif regex. Cet objet est ensuite utilisé pour rechercher les occurrences du motif regex dans la chaîne cible à l’aide de la méthode re.search() méthode.
S’il trouve au moins une correspondance, la méthode re.search() renvoie la première correspondance. Notez que si vous souhaitez rechercher toutes les correspondances du motif dans la chaîne cible, vous devez utiliser la méthode re.findall() méthode.
L’exécution du code ci-dessus confirme que la première URL est valide, mais que les autres ne le sont pas.
De même, vous pouvez valider une URL en JavaScript en utilisant le code suivant :
function validateURL(url) {
if(/^(http(s):\/\/.)[-a-zA-Z0-9@:%._\+~#=]{2,256}\.[a-z]{2,6}\b([-a-zA-Z0-9@:%_\+.~#?&//=]*)$/g.test(url)) {
console.log('Valid');
} else {
console.log('Not Valid');
}
}
validateURL("https://www.linkedin.com/");
validateURL("http://apple");
validateURL("iywegfuykegf");
validateURL("https://w");
Là encore, l’exécution de ce code confirmera que la première URL est valide et que les autres ne le sont pas. Il utilise la fonction match() pour faire correspondre la chaîne cible à un motif d’expression régulière.
Exemples réels et cas d’utilisation de la validation d’URL à l’aide de Regex
La validation d’URL à l’aide de regex peut s’avérer cruciale dans plusieurs scénarios de développement web et de traitement de données. Voici quelques exemples et cas d’utilisation concrets :
- En utilisant des expressions rationnelles, vous pouvez vous assurer que les URL soumises par l’intermédiaire d’un formulaire web sont dans le bon format, évitant ainsi les erreurs ou les failles de sécurité. Vous pouvez valider les URL dans les formulaires de contact, les liens de profil d’utilisateur ou les champs de saisie qui requièrent des URL de sites web.
- Les expressions régulières vous permettent de filtrer et d’extraire des URL spécifiques en fonction de leurs modèles ou de leurs domaines. Cela vous permet de ne collecter que les données pertinentes provenant des sources souhaitées et d’éviter de traiter des URL non pertinentes ou potentiellement nuisibles.
- Pour les applications traitant de grandes quantités de données contenant des URL, telles que les plateformes de médias sociaux ou les systèmes de gestion de contenu, la validation des liens est essentielle. Les expressions régulières peuvent aider à identifier les URL cassées ou invalides. Cela vous permet d’effectuer la vérification des liens et de prendre les mesures appropriées, telles que la suppression ou le marquage des liens invalides.
Valider des données importantes à l’aide d’expressions régulières
Vous pouvez utiliser des expressions régulières pour rechercher, faire correspondre ou analyser du texte. Elles sont également utilisées pour le traitement du langage naturel, la recherche de motifs et l’analyse lexicale.
Vous pouvez utiliser cet outil puissant pour valider des types de données importants tels que les numéros de cartes de crédit, les détails des comptes d’utilisateurs, les adresses IP, etc.