« Programmation Perl/Expressions régulières » : différence entre les versions

Contenu supprimé Contenu ajouté
Ligne 423 :
La solution est de remplacer chaque quantificateur par sa version non avide :
*, +, ?, et {} deviennent respectivement *?, +?, ?? et {}?.
<source lang="perl">
#!/usr/bin/perl -w
use strict;
# + (ou *) avide
my $texte = "anticonstitutionnellement";
$texte =~ /^(.+)i/;
print $1."\n"; # anticonstitut
 
# +? (ou *?) non avide
$texte =~ /^(.+?)i/;
print $1."\n"; # ant
 
# {…} avide
$texte =~ /^(.{6,})e/;
print $1."\n"; # anticonstitutionnellem
# {…}? non avide
$texte =~ /^(.{6,}?)e/;
print $1."\n"; # anticonstitutionn
</source>