Expressions régulières

soummam Messages postés 184 Statut Membre -  
soummam Messages postés 184 Statut Membre -
Bonjour,

Quelle est l'expression régulière pour filtrer un mot se terminant par une chaine de caractère, par exemple OL et quels soient le nombre de caractères précédents OL

Exemple
toutsurol
gool
bol

Merci de votre aide
Configuration: Windows XP
Firefox 2.0.0.11

4 réponses

  1. Ssylvainsab Messages postés 2892 Statut Modérateur 825
     
    Salut.

    Ca dépend du logiciel que tu utilises.
    Mais ici, l'expression à utiliser est simple, elle devrait passer partout :
    [a-zA-Z]*ol\b
    Note qu'ici, la casse est respectée.
    0
  2. soummam Messages postés 184 Statut Membre 110
     
    Peux-tu me dire à quoi correspond \b ?
    0
    1. jipicy Messages postés 40842 Date d'inscription   Statut Modérateur Dernière intervention   4 898
       
      Salut,

      man grep
      L'accent circonflexe ^ et le symbole dollar $ sont des  méta-caractères
             correspondant  respectivement  à  une chaîne vide au début et en fin de
             ligne.  Les symboles \< et \> correspondent respectivement à une chaîne
             vide  en début et en fin de mot.  Le symbole \b correspond à une chaîne
             vide à l'extrémité d'un mot, et \B correspond à une chaîne vide  ne  se
             trouvant pas à une extrémité de mot.
      ;-))
      0
  3. Ssylvainsab Messages postés 2892 Statut Modérateur 825
     
    Je sais qu'avec les regex en PHP, ça correspond à une limite de mot (c'est à dire [^A-Za-z]).
    Mais ça ne consomme pas de caractère.
    C'est à dire si tu fais un remplacement, les caractères qui correspondent à \b ne seront pas remplacés.
    (oups, j'ai fait une erreur dans mon message précédent, la deuxième expression était fausse. je l'ai enlevée)
    --
    Sylvain
    0
    1. lami20j Messages postés 21506 Date d'inscription   Statut Modérateur, Contributeur sécurité Dernière intervention   3 571
       
      Salut,

      je n'ai pas étudier les regex de PHP

      ça correspond à une limite de mot (c'est à dire [^A-Za-z]).
      toutefois ce n'est pas plutôt [^a-zA-Z0-9_] sauf si on étends l'expression pour les caractères UNICODE

      les caractères qui correspondent à \b
      \b c'est une assertion de largeur nulle qui ne correspond à aucun caractère, mais seulement à un emplacement
      0
      1. Ssylvainsab Messages postés 2892 Statut Modérateur 825 > lami20j Messages postés 21506 Date d'inscription   Statut Modérateur, Contributeur sécurité Dernière intervention  
         
        toutefois ce n'est pas plutôt [^a-zA-Z0-9_] sauf si on étends l'expression pour les caractères UNICODE
        Peut-être, je ne sais pas.
        Je suis loin d'être un expert en regex.

        \b c'est une assertion de largeur nulle qui ne correspond à aucun caractère, mais seulement à un emplacement
        autant pour moi.
        --
        Sylvain
        0
  4. soummam Messages postés 184 Statut Membre 110
     
    Voici un extrait du fichier http://hostsfile.org/fr/proxy.txt
    J'ai suivi ton conseil (voir en gras) mais l'URL contenant le mot bestofsex apparait.
    J'utilise IE7 sous Windows XP
    As-tu une idée du problème ?

    // l'URl est refusée si un des noms finit par l'un des mots suivants
    // sauf si elle a été jugée acceptable par "GoodNetworks".
    // ATTENTION : NE PLACEZ PAS D'EXPRESSION RÉGULIÈRE À LA FIN DES VALEURS.
    var BadURL_WordEnds = new Array();
    i=0;
    BadURL_WordEnds[i++] = "anal";
    BadURL_WordEnds[i++] = "babe";
    BadURL_WordEnds[i++] = "butt";
    BadURL_WordEnds[i++] = "chest";
    BadURL_WordEnds[i++] = "coed";
    BadURL_WordEnds[i++] = "[^h]eros";
    BadURL_WordEnds[i++] = "escort";
    BadURL_WordEnds[i++] = "gals";
    BadURL_WordEnds[i++] = "gay";
    BadURL_WordEnds[i++] = "girl";
    BadURL_WordEnds[i++] = "girls";
    BadURL_WordEnds[i++] = "girlz";
    // BadURL_WordEnds[i++] = "[^s]hot"; // VOTRE CHOIX
    BadURL_WordEnds[i++] = "legs";
    BadURL_WordEnds[i++] = "mature";
    BadURL_WordEnds[i++] = "nude";
    BadURL_WordEnds[i++] = "[^u]pee";
    BadURL_WordEnds[i++] = "pink";
    BadURL_WordEnds[i++] = "piss";
    BadURL_WordEnds[i++] = "rape";
    BadURL_WordEnds[i++] = "[a-zA-Z]*sex";
    BadURL_WordEnds[i++] = "sexe";
    BadURL_WordEnds[i++] = "teen";
    0