La programmation a facilité le traitement des données textuelles structurées et non structurées. Des outils comme 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 les 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 les URL pour des cas d'utilisation simples.

Une expression régulière pour valider une URL

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 à cette validation de regex. Cela inclut les URL impliquant des adresses IP, des caractères non ASCII et des protocoles tels que FTP. L'expression régulière suivante ne valide que les URL les plus courantes.

L'expression régulière considérera une URL comme valide si elle satisfait les conditions suivantes :

  1. La chaîne doit commencer soit par http ou https suivie par ://.
  2. instagram viewer
  3. La longueur combinée du sous-domaine et du domaine doit être comprise entre 2 et 256. Il ne doit contenir que des caractères alphanumériques et/ou des caractères spéciaux.
  4. Le TLD (Top-Level Domain) ne doit contenir que des caractères alphabétiques et doit comporter entre deux et six caractères.
  5. La fin de la chaîne d'URL peut contenir des caractères alphanumériques et/ou des caractères spéciaux. Et cela pourrait se répéter zéro ou plusieurs fois.

Vous pouvez valider une URL en JavaScript à l'aide de 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 la regex 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 de caractères à autoriser dans la partie sous-domaine et domaine. Alors que la deuxième instance de cet ensemble représente l'ensemble de caractères à autoriser dans la chaîne de requête ou la partie de 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 d'une longueur comprise entre deux et six. Cela représente le jeu de caractères à autoriser dans la partie domaine de premier niveau.
  • \b représente la limite d'un mot, c'est-à-dire le début d'un mot 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 un guide du débutant sur les expressions régulières d'abord. Les expressions régulières prennent un certain temps pour s'y habituer. Explorer quelques exemples comme validation des détails du compte utilisateur à l'aide d'expressions régulières devrait aider.

L'expression régulière 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 Référentiel GitHub et est libre d'utilisation sous la licence MIT.

Il s'agit d'une approche Python pour valider une URL :

importer concernant

définitivementvaliderURL(URL):
regex = "^((http|https)://)[-a-zA-Z0-9@:%._\\+~#?&//=]{2,256}\\.[a-z]{2,6}\\b([-a-zA-Z0-9@:%._\\+~#?&//=]*)$"
r = re.compile (regex)

si (concernant.recherche(r, URL)):
imprimer("Valide")
autre:
imprimer("Pas valide")

URL1 = "https://www.linkedin.com/"
validerURL(url1)
URL2 = "http://apple"
validerURL(url2)
URL3 = "iywegfuykegf"
validerURL(url3)
URL4 = "https://w"
validerURL(url4)

Ce code utilise Python re.compile() méthode pour compiler le modèle d'expression régulière. Cette méthode accepte le modèle regex comme paramètre de chaîne et renvoie un objet modèle regex. Cet objet de modèle regex est en outre utilisé pour rechercher des occurrences du modèle regex à l'intérieur de la chaîne cible à l'aide de la recherche() méthode.

S'il trouve au moins une correspondance, le recherche() La méthode renvoie la première correspondance. Notez que si vous souhaitez rechercher toutes les correspondances avec le modèle à partir de la chaîne cible, vous devez utiliser le re.findall() méthode.

L'exécution du code ci-dessus confirmera 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 à l'aide du code suivant :

fonctionvaliderURL(URL) {
si(/^(http(s):\/\/.)[-a-zA-Z0-9@:%._\+~#=]{2,256}\.[a-z]{2,6}\b([-a-zA-Z0-9@:%_\+.~#?&//=]*)$/g.test (URL)) {
console.log('Valide');
} autre {
console.log('Pas valide');
}
}

validerURL("https://www.linkedin.com/");
validerURL("http://apple");
validerURL("iywegfuykegf");
validerURL("https://w");

Encore une fois, l'exécution de ce code confirmera que la première URL est valide et que les autres ne sont pas valides. Il utilise JavaScript correspondre() pour faire correspondre la chaîne cible à un modèle d'expression régulière.

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. Ils sont également utilisés pour le traitement du langage naturel, la correspondance de modèles et l'analyse lexicale.

Vous pouvez utiliser cet outil puissant pour valider des types de données importants tels que les numéros de carte de crédit, les détails du compte utilisateur, les adresses IP, etc.