Aide regular expression [Résolu/Fermé]

Signaler
-
Messages postés
15391
Date d'inscription
mardi 11 mars 2003
Statut
Contributeur
Dernière intervention
15 janvier 2021
-
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
532
Date d'inscription
mercredi 9 mars 2016
Statut
Membre
Dernière intervention
8 mars 2018
89
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
532
Date d'inscription
mercredi 9 mars 2016
Statut
Membre
Dernière intervention
8 mars 2018
89
"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 :


Messages postés
15391
Date d'inscription
mardi 11 mars 2003
Statut
Contributeur
Dernière intervention
15 janvier 2021
642
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.
Messages postés
1288
Date d'inscription
dimanche 21 septembre 2008
Statut
Contributeur
Dernière intervention
17 mars 2017
808
> Il y a juste un petit soucis avec la fin de ligne apparemment

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

Messages postés
15391
Date d'inscription
mardi 11 mars 2003
Statut
Contributeur
Dernière intervention
15 janvier 2021
642
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.