OVH Cloud OVH Cloud

ignorer la ligne vide

4 réponses
Avatar
nicolas_laurent545
J'essaye d'ignorer les lignes vides dans un texte. Ces trois
expressions r=E9guli=E8res sont-elles justes ?
$line =3D~ s/\s+/ /g;=20
$line =3D~ /^ *$/;=20
$line =3D~ s/^\s*$//;=20

Merci

4 réponses

Avatar
Isammoc
écrivait news:1115844580.808280.267580
@g49g2000cwa.googlegroups.com:


J'essaye d'ignorer les lignes vides dans un texte. Ces trois
expressions régulières sont-elles justes ?
$line =~ s/s+/ /g;
$line =~ /^ *$/;
$line =~ s/^s*$//;


personnellement, j'aurais fait d'instint:

$line =~ s/nn/^M/g;

Si ca suit bien le meme type de caractères que notre cher vi.

Merci


De rien, mais alors de rien...

Avatar
DoMinix
wrote:
J'essaye d'ignorer les lignes vides dans un texte. Ces trois
expressions régulières sont-elles justes ?
$line =~ s/s+/ /g;
$line =~ /^ *$/;
$line =~ s/^s*$//;

Merci



seule la 2eme est correcte.

la 1ere remplace de multiple espace par un seul
la 3eme remplace une ligne contenant des espaces par une ligne vide.

je crois que tu melange le match ( m// ) et le search-replace ( s/// )
voir alors
perldoc perlop
perldoc perlre

NB : faire attention a l'origine du fichier (fin de ligne dos/unix/mac )

--
dominix

Avatar
JacK
Le 11/05/2005 22:49, :
J'essaye d'ignorer les lignes vides dans un texte. Ces trois
expressions régulières sont-elles justes ?
$line =~ s/s+/ /g;
$line =~ /^ *$/;
$line =~ s/^s*$//;

Merci

/^$/


Avatar
DoMinix
"Isammoc" <Isammoc.jeux(no-spam)@free.fr> a écrit dans le message de news:

écrivait news:1115844580.808280.267580
@g49g2000cwa.googlegroups.com:


J'essaye d'ignorer les lignes vides dans un texte. Ces trois
expressions régulières sont-elles justes ?
$line =~ s/s+/ /g;
$line =~ /^ *$/;
$line =~ s/^s*$//;


personnellement, j'aurais fait d'instint:

$line =~ s/nn/^M/g;


ça, ça ne fonctionne pas.
par definition si la variable est une ligne ( $line ? )
elle s'arrete au premier "n".
cependant cela peux fonctionner en mode multiligne si on
utilise s///s, voire s///ms selon

si on veux _ignorer_ la ligne ça prend du code
if ($line =~ m/^s*$/) {...} else {...}
se qui signifie : commence par ( des espace ou pas )
suivit de la fin de ligne
on a alors une ligne vide.


Si ca suit bien le meme type de caractères que notre cher vi.

Merci


De rien, mais alors de rien...


A plus.

--
dominix