Bonjour

j'essay de creer une fonction qui qui me renvoie le nombre d'occurances d'une sous chaine de N caractaires dans une chaine donnée.

je fait cela de la maniere suivante :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
sub make_histogramm{
                 my ($text, $size) = @_;
                 my %result;
 
                 while ($text =~ /(\S{$size})/g){
                        $result{$1}++;
                        #print $1;  #pour le debogage
                        #<STDIN>;
                 }
 
                 return %result;
 
}
le probleme c'est que si je passe a cette fonction une chaine comme "abcdefgh", avec une longeure de sous chaine de 2, l'expression reguliaire me renvoie "ab" = 1, "cd"=1 ... alors que ce qu'il me faudrait c'est que l'expression reguliaire me detecte egualement le "bc" , "de" ...

Donc y a t-il une facon de faire cela uniquement avec une expression reguliaire, ou alors je devrait bidouiller un peut avec des boucles ?

Merci d'avance, j'aurait surment d'autres questions sur les expressions reguliaire, je les poserait donc ici