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
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Paul Gaborit
Le #24061471
À (at) Mon, 12 Dec 2011 06:09:51 -0800 (PST),
titof92
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,



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 -
azrazer
Le #24061361
Bonjour,
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 :
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
Publicité
Poster une réponse
Anonyme