1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42

DESS TIMH

Introduction au langage Perl

  1. Expressions régulières

    Comme la commande "egrep" d'Unix, Perl offre la même puissance de manipulation
    d'expressions régulières.

On utilise l'opérateur conditionnel =~ qui signifie "ressemble à".

Syntaxe: chaîne =~/expression/

Exemple: if ($nom =~ /^[Dd]upon/) {print "OK !";}
=> Ok si nom est 'dupont', 'dupond', 'Dupont-Lassoeur'
^ signifie « commence par »
On peut rajouter « i » derrière l'expression pour signifier qu'on ne différencie pas les majuscules
des minuscules.

Le contraire de l'opérateur =~est !~(ne ressemble pas à ...)
if ($nom !~ /^dupon/i) {print "Non...";}

  • Rappel

    Une expression régulière (appelée aussi « regexp ») est un motifde recherche, constitué
    de :
  • Un caractère
  • Un ensemble de caractères :
    • [a-z] tout caractère alphabétique
    • [aeiouy] toute voyelle
    • .tout caractère sauf fin de ligne
    • [a-zA-Z0-9] tout caractère alphanumérique
    • le caractère ^ au début d'un ensemble signifie « tout sauf »
      ([^0-9] : tout caractère non numérique)
    • Un caractère spécial: \n, « retour-chariot», \t : tabulation, ^ : début de ligne, $ : fin
      de ligne
    • \w signifie « un mot », \s signifie « un espace », \W « tout sauf un mot », \S
      « tout sauf un espace »
    Quelques opérateurs : « ? » 0 ou 1 fois, « * » : 0 ou n fois, « + » : 1 ou n fois, « | » : ou
    (inclusif)
    Il y a même l'opérateur
    {n,m}qui signifie de nà mfois.

    Remarque :Si l'on veut qu'un carcatère spécial apparaisse tel quel, il faut le précéder d'un « anti-
    slash » (
    \), les caractères spéciaux sont :
    « 
    ^ | ( ) [ ] { } \ / $ + * ? .»
    ex:
    if (/\(.*\)/) {print;}
    qui affiche contenant des parenthèses


    Attention:
    le caractère spécial « ^ » a deux significations différentes :
    1. dans un ensemble il signifie « tout sauf »
    2. en dehors il signifie « commence par »

http://www.med.univ-rennes1.fr/~poulique/cours/perl/

Page 19

[CONVERTED BY MYRMIDON]