Bonjour,

Je cherche à comparer 2 variables contenant une chaine de caractères.

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
my $v1 ="je mange une bonne pomme";
my $v2 = "je mange une bonne fraise";
(my $c = "$v1\n$v2" ) =~ /^(.*)(\b.*)\n\1(.*)/;
print "texte commun\n".$1."\n";
print "texte diférant1\n".$2."\n";
print "texte diférant2\n".$3."\n";
Dans cet exemple tout fonctionne bien, ça retourne bien que "pomme" est différent de "fraise" et que le texte commun est "je mange une bonne".

Mais voila ce que je voudrais obtenir également.

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
my $v1 ="je mange une bonne pomme";
my $v2 = "mange une bonne fraise";
(my $c = "$v1\n$v2" ) =~ /^(.*)(\b.*)\n\1(.*)/;
print "texte commun\n".$1."\n";
print "texte diférant1\n".$2."\n";
print "texte diférant2\n".$3."\n";
Mais là ça fonctionne pas comme je le voudrais.

Je voudrais qu'il me retourne le texte commun "mange une bonne" et qu'il retourne seulement le texte différent se trouvant après le texte commun.
donc
pomme
fraise

S'il y a un génie des regexp qui pourrait m'aider, ça serait super sympa!

merci à vous.