Expression reguliere

Bonjour,

comment décrire ,avec une expression régulière, les mots qui sont composés exactement de 3 caractères differents ..

exemple:
areeer
abaca
abas
abat
abbe

Merci :)
Configuration: Linux
Firefox 3.5.7

6 réponses

  1. Salut,

    Je viens de regarder et je vois que 'abbe' n'est pas affiché et pourtant il n'y a que 3 caractères différents qui constituent ce mot.

    Enfin c'est qu'on vois puisqu'en réalité il s'agit de mots 'abbe ' (j'utilise les apostrophes pour voir l'espace), donc 4 caractères différents (c'est ça que j'ai eu quand j'ai fait copier/coller depuis ccm)

    On peut supprimer les espaces au début et à la fin de ligne pour s'assurer que les espaces ne sont pas pris en compte.

    $ cat plop.txt
    plusieurscaracteres
    abccbaabcbaccab
    aa
    at
    exemple:
    areeer
    abaca
    abas
    abat
    abbe
    toto
    titi
    blabla
    blablat
    $ perl -nle's/\s*$//;s/^\s*//;%h=()or $x=grep!$h{$_}++,split//;print if $x==3' plop.txt
    abccbaabcbaccab
    areeer
    abaca
    abas
    abat
    abbe
    blabla
    1. <Mode HorsSujet>
      Salut kilian et irongege ;-)

      Mes meilleurs voeux et une bonne année et surtout de la santé.

      Le plaisir est pour moi ;-)
      <\Mode HorsSujet>

      P.S. Vous pouvez supprimer ce message après l'avoir lu pour ne pas encombrer le message de chintok
      1. C'est pas une expression régulière, ça :-)
        1. Salut,

          Effectivement ;-)
          Trop paresseux pour la chercher, surtout dimanche ;-))
        2. Modérateur
          @kilianTous mes bons voeux Lami, au plaisir.
      2. Salut,

        Si j'ai bien compris tu veux trouver seulement les mots (quelque soit la longueur >=3) qui sont constitués seulement de 3 caractères différents

        $ cat plop.txt 
        plusieurscaracteres
        abccbaabcbaccab
        aa
        at
        exemple:
        areeer
        abaca
        abas
        abat
        abbe 
        toto
        titi
        blabla
        blablat
        $ perl -nle'%h=()or $x=grep!$h{$_}++,split//;print if $x==3' plop.txt
        abccbaabcbaccab
        areeer
        abaca
        abas
        abat
        blabla
        1. C'est un exercice qu'on t'a donné ? Parce que ce je ne suis pas sûr que ce soit possible. Et si ça l'est, ce n'est pas trivial.