J'ai besoin de votre aide sur un regxp , voila j'ai dans un prog perl besoin de compter le nombre d'occurence d'une chaine dans un document pour cela j'ai employé une solution simple :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#!/usr/bin/perl -w
use strict;
use diagnostics;
 
my $i = "maison maison maison maisonnette chien";
 
my $l = "maison";
 
my $p;
while ( $i =~ /$l/gci )
{
  $p++;
}
print "$p\n\n";
Mon problème c'est que le regxp compte quatre fois maison a cause de la prédence de maisonnette, j'ai voulu faire un regxp plus strict en faisant cela

Code : Sélectionner tout - Visualiser dans une fenêtre à part
while ( $i =~ /^$l$/gci )
mais perl ne match carrement plus

Auriez vous une solution ? j'ai pensé a découpé a faire cela mais c'est lourd

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
my @Text = split ' ', $text;
 
foreach my $terme ( @Text )
{
   while ( $terme eq $chaine_rechercher )
   {
      $count++;
   }
}