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

Contenu supprimé Contenu ajouté
Ligne 50 :
Pour effectuer des recherches dans une chaîne de caractère, nous utilisons la fonctionnalité ''m''.
C'est le mode par défaut, nous n'avons pas besoin de l'écrire.
<source lang="perl">
#!/usr/bin/perl -w
use strict;
 
# crochets []
@tableau = qw(affiche affole affuble affriole effectué effacer);
print 'Test sur la regex : if ( $texte =~ m/ff[a-df-np-s]/ )'."\n";
foreach my $texte (@tableau){
print "“$texte“";
if ( $texte =~ m/ff[a-df-np-s]/ ){ print " vrai, "; }
else{ print " faux, "; }
}
print "\n" x 2;
 
# crochets [^…]
@tableau = qw(affiche affole affuble affriole effectué effacer);
print 'Test sur la regex : if ( $texte =~ m/ff[^ieo]/ )'."\n";
foreach my $texte (@tableau){
print "“$texte“";
if ( $texte =~ m/ff[^ieo]/ ){ print " vrai, "; }
else{ print " faux, "; }
}
print "\n" x 2;
 
# ^ début de ligne
@tableau = ("affiche", "âme", "à toi", " affiche");
print 'Test sur la regex : if ( $texte =~ m/^a/ )'."\n";
foreach my $texte (@tableau){
print "“$texte“";
if ( $texte =~ m/^a/ ){ print " vrai, "; }
else{ print " faux, "; }
}
print "(espace en-tête)";
print "\n" x 2;
 
# $ fin de ligne
@tableau = ("affiche", "affiche.", "affiches");
print 'Test sur la regex : if ( $texte =~ m/che.$/ )'."\n";
foreach my $texte (@tableau){
print "“$texte“";
if ( $texte =~ m/che.$/ ){ print " vrai, "; }
else{ print " faux, "; }
}
print "\n" x 2;
 
# \. point échappé
@tableau = ("affiche", "affiche.", "affiches");
print 'Test sur la regex : if ( $texte =~ m/che\.$/ )'."\n";
foreach my $texte (@tableau){
print "“$texte“";
if ( $texte =~ m/che\.$/ ){ print " vrai, "; }
else{ print " faux, "; }
}
print '(\. point échappé = vrai point, pas n‘importe quel caractère)';
print "\n" x 2;
 
# groupe de capture ()
@tableau = qw(dare-dare borborigme calcul barbare Tartare bébé );
print 'Test sur la regex : if ( $texte =~ m/(...)\1/ )'."\n";
foreach my $texte (@tableau){
print "“$texte“";
if ( $texte =~ m/(...)\1/ ){ print " vrai, "; }
else{ print " faux, "; }
}
print "(é = 2 octets)";
print "\n" x 2;
 
# *
@tableau = qw(miss mess messe messes);
print 'Test sur la regex : if ( $texte =~ m/e[s]*$/ )'."\n";
foreach my $texte (@tableau){
print "“$texte“";
if ( $texte =~ m/e[s]*$/ ){ print " vrai, "; }
else{ print " faux, "; }
}
print "\n" x 2;
 
# +
@tableau = qw(pomme pommes mess messe messes);
print 'Test sur la regex : if ( $texte =~ m/e[s]+$/ )'."\n";
foreach my $texte (@tableau){
print "“$texte“";
if ( $texte =~ m/e[s]+$/ ){ print " vrai, "; }
else{ print " faux, "; }
}
print "\n" x 2;
 
# ?
@tableau = qw(pommes pomme mess);
print 'Test sur la regex : if ( $texte =~ m/me[s]?$/ )'."\n";
foreach my $texte (@tableau){
print "“$texte“";
if ( $texte =~ m/me[s]?$/ ){ print " vrai, "; }
else{ print " faux, "; }
}
print "\n" x 2;
 
# {…}
@tableau = qw(tttrès hutte haute hausse tousse);
print 'Test sur la regex : if ( $texte =~ m/[t]{1,2}/ )'."\n";
foreach my $texte (@tableau){
print "“$texte“";
if ( $texte =~ m/t{2,3}/ ){ print " vrai, "; }
else{ print " faux, "; }
}
print "\n";
</source>
 
=== remplacement : s ===