Aide regular expression [Résolu/Fermé]

Signaler
-
Whismeril
Messages postés
14099
Date d'inscription
mardi 11 mars 2003
Statut
Contributeur
Dernière intervention
17 janvier 2020
-
Bonjour,

dans cette exemple:


http://com.exemple/123/
http://exemple.com/123/
http://www.exemple.com/123/
http://exemple.com.fr/123/
http://exemple.info/exemple.com/666/
http://exemple.com/123
http://exemple.com/123.html
http://exemple.com/123/456/
http://exemple.com/1/2/3/
http://exemple.com/789/
http://exemple.com/123/a
http://exemple.com/123/12
http://exemple.com/1234/
http://exemple.net/123/
http://exemple.net/456/
http://exemple.org/123/
http://exemple.org/
http://exemple.org/1/
http://exemple.org/abc/
http://exemple.org/12a/
http://exemple.org/456/

via regular expression, comment ne sélectionner que les urls avec nom de domaine .com ou .org suivi par trois nombres et fini par une slash /
  • (com|org)
  • d{3}
  • /$

urls valide :

http://exemple.com/123/
http://www.exemple.com/123/
http://exemple.com/789/
http://exemple.org/123/
http://exemple.org/456/

Merci.

2 réponses

Messages postés
542
Date d'inscription
mercredi 9 mars 2016
Statut
Membre
Dernière intervention
8 mars 2018
74
echo "$url" | grep -E 'http:\/\/(www\.)?exemple\.(com|org)\/[0-9]{3}'\/$
http://exemple.com/123/
http://www.exemple.com/123/
http://exemple.com/789/
http://exemple.org/123/
http://exemple.org/456/
C'est parfait pour moi, merci :)

Si ce n'est pas trop demander, comment tester sur le site https://regex101.com/
Messages postés
542
Date d'inscription
mercredi 9 mars 2016
Statut
Membre
Dernière intervention
8 mars 2018
74
"Si ce n'est pas trop demander, comment tester sur le site https://regex101.com/"


Il y a juste un petit soucis avec la fin de ligne apparemment, donc j'ai ajouté (\n|$) pour dire qu'on a soit une fin de ligne, soit un retour à la ligne :


Whismeril
Messages postés
14099
Date d'inscription
mardi 11 mars 2003
Statut
Contributeur
Dernière intervention
17 janvier 2020
435
Salut,

tu peux remplacer [0-9] par \d
http:\/\/(www\.)?exemple\.(com|org)\/\d{3}\/\n|$


@Rocailleux, @Whismeril, Je suis satisfait :) Encore merci, merci pour vos réponses.
smed_79
Messages postés
1304
Date d'inscription
dimanche 21 septembre 2008
Statut
Contributeur
Dernière intervention
17 mars 2017
687
> Il y a juste un petit soucis avec la fin de ligne apparemment

@Rocailleux Utiliser l'option (flag) multi line.

Whismeril
Messages postés
14099
Date d'inscription
mardi 11 mars 2003
Statut
Contributeur
Dernière intervention
17 janvier 2020
435
Bonjour smed,
au départ je me suis fais la même réflection, mais....

Rocailleux n'a pas développé, sa première syntaxe acceptait http://exemple.com/123/a et http://exemple.com/123/12 donc pour s'en affranchir il a spécifié qu'ensuite il y a soit une fin de ligne soit la fin du texte.
Et du coup, pas besoin de l'option multi ligne.