Aide regular expression

Résolu
serjjj -  
 Utilisateur anonyme -
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

  1. Utilisateur anonyme
     
    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/
    
    0
    1. serjjj
       
      C'est parfait pour moi, merci :)

      Si ce n'est pas trop demander, comment tester sur le site https://regex101.com/
      0
  2. Utilisateur anonyme
     
    "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 :

    0
    1. Utilisateur anonyme
       
      Salut,

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


      0
    2. serjjj
       
      @Rocailleux, @Whismeril, Je suis satisfait :) Encore merci, merci pour vos réponses.
      0
    3. smed_79 Messages postés 1298 Date d'inscription   Statut Contributeur Dernière intervention   850
       
      > Il y a juste un petit soucis avec la fin de ligne apparemment

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

      0
    4. Utilisateur anonyme
       
      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.
      0