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,

    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.
      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. <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. 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