Un petit programme qui montre quelques possibilités du langage PERL et des expressions régulières
Perl est un langage très puissant de manipulation de textes.Le but du petit programme suivant va nous permettre de voir comment contrôler la saisie de l’utilisateur à l’aide d’expressions régulières.
Le but du programme est de permettre à l’utilisateur d’entrer directement une somme en Euro ou en francs en faisant suivre la valeur de l’unité.
Si la valeur est suivi d’un E (ou d’un "e") le programme traduira la valeur en Francs.
Si la valeur est suivi d’un F (ou d’un "f") le programme traduira la valeur en Euro.
D’autre part j’ai voulu rendre la saisie la plus souple possible. Les saisies suivantes seront donc valides : "23E", "15e", "12.34 f", ".45f", "-0.30f".
Par contre la saisie de l’unité est obligatoire.
Un des avantages de langage PERL est sa capacité de gérer les expressions régulière de manière native dans le langage.
Voici donc les explications de l’expression :
^([+-]?[0-9]*(\.[0-9]*)?) *([EeFf])$
Détails de l’expression :
^ |
début de ligne |
[+-] ? |
Signe plus ou moins. Le " ?" indique 0 ou une fois le caractère |
[0-9]* |
Caractère numérique. Le "*" indique de 0 ou plusieurs fois |
(\.[0-9]*) ?) |
"\." caractère point [0-9]* des caractères numériques "( ... ) ?" ce qu’il y a entre parenthèse de 0 à une fois. |
* |
Un espace de 0 à plusieurs fois |
[EeFf] |
"F" ou "E" en majuscule ou minuscule. |
D’autre part, les parenthèses dans une expression régulière permettent en plus du regroupement de récupérer des parties de motifs dans des variables PERL particulières nommées : $1, $2, .. à $9. Ce qui nous donne pour notre expression :
$1 |
La valeur saisie motif : ([+-] ?[0-9]*(\.[0-9]*) ?) |
$2 |
N’est pas utilisé dans le programme |
$3 |
Unité saisie par le programme Motif : ([EeFf]) |
J’ai réalisé ce programme après quelques heures d’apprentissage, je n’ai donc pas d’expérience en PERL. Il permet malgré tout de montrer la puissance et la concision du langage.
Cet exemple montre une utilisation des expressions régulières avec le langage PERL. Il faut préciser que les expressions régulières ne sont pas spécifiques à PERL et que vous pourrez les utiliser avec de nombreux autres langages comme Java ou Python et aussi, un certain nombre de commandes UNUX/LINUX.
2003-2022 LePpf
Plan du site
| Se connecter |
Contact |
RSS 2.0 |
Sur YouTube
Visiteurs connectés : 0
Nombre moyen de visites quotidiennes sur le site: 195