Expression régulière - ligne à prendre en compte
Le
titof92
Bonjour,
Je me retrouve bloqué face à un petit souci, dans le cadre d''une
lecture de fichier en séquentiel.
En fait, je souhaiterais utiliser une expression régulière qui me
permette de prendre en compte uniquement les lignes non vides, ne
commençant ni par HDR, ni par TRL, mais je ne vois pas trop comment
parvenir à mes fins
Quelqu'un peut-il m'aider ?
Merci par avance,
Christophe
Je me retrouve bloqué face à un petit souci, dans le cadre d''une
lecture de fichier en séquentiel.
En fait, je souhaiterais utiliser une expression régulière qui me
permette de prendre en compte uniquement les lignes non vides, ne
commençant ni par HDR, ni par TRL, mais je ne vois pas trop comment
parvenir à mes fins
Quelqu'un peut-il m'aider ?
Merci par avance,
Christophe

Poser une question


titof92
En supposant que le filehandle du fichier ouvert en lecture est
$fichier :
while (<$fichier>) {
next if m/^$/; # on saute les lignes vides
next if m/^HDR/; # on saute les lignes commençant par HDR
next if m/^TRL/; # on saute les lignes commençant par TRL
# ici on traite la ligne courante (elle est dans $_)
}
On peut tout faire en une seule regexp (mais c'est moins lisible) :
while (<$fichier>) {
# on saute les lignes vides ou commençant par HDR ou TRL
next if m/^(?:$|HDR|TRL)/;
# ici on traite la ligne courante (elle est dans $_)
}
--
Paul Gaborit - Perl en français -
une expression régulière basique fonctionnerait, non ?
du genre
foreach my $line (<$FICHIER>){
if ($line !~ /^$|^HDR|^TRL){
...
}
}
????
Est-ce que cela est suffisant ??
Cordialement,
azra..
# exemple ....
use strict;
use warnings;
foreach my $line (<DATA>){
if ($line !~ /^$|^HDR|^TRL/){
print $line;
}
}
__DATA__
Ligne1
Ligne3
TRL Ligne4
Ligne5
HDR Ligne6
Ligne7
#EOF#
Le 12/12/2011 15:09, titof92 a écrit :