Création
d'entreprise
Posez votre question Signaler

[Perl] Suppr d'espaces en début de ligne [Résolu]

batmat 1880Messages postés 1 novembre 2001Date d'inscription - Dernière réponse le 20 oct. 2005 à 15:27
Salut à tous,

J'ai un petit souci avec une expression régulière Perl.
Je fais un test avec le petit programme suivant :
#!/usr/bin/perl -w
use strict;

my $text = " hey bonjour\n         \t          pof pif";

print "$text\n";
$text =~ s/^[ \t]+//g;
print "$text\n";


Normalement, le deuxième print devrait m'afficher
hey bonjour
pof pif


Au lieu de ça, le remplacement semble ne fonctionner que sur la première ligne ?! Ça me donne donc :
hey bonjour
                          pof pif


J'ai testé ce bout de code sous windows avec cygwin et sur une debian, le résultat est le même.

Je ne comprends pas du tout ce comportement : je dis bien supprime moi (s) tout espace ou tabulation ([ \t]+) et ce pour toutes les occurrences (/g).

Quelqu'un voit pourquoi ça fonctionne pas et surtout quelle serait la solution à ce souci ?

Merci
@++
Lire la suite 

[Perl] Suppr d'espaces en début de ligne »

3 réponses
Réponse
+0
moins plus
L'accent circonflexe indique que les espaces doivent être en début de chaîne uniquement.

Si tu veux tout enlever, enlève le ^
batmat- 20 oct. 2005 à 10:45
Oui, je sais. Désolé, je ne l'ai pas redit dans ma phrase récapitulative. Mais, l'exemple où je montre la différence d'affichage entre ce que j'attends et ce que j'obtiens montre que je ne veux supprimer que les espaces en début de ligne avant le texte.

Merci qd même.
@++
Ajouter un commentaire
Réponse
+0
moins plus
Bon, j'ai trouvé la réponse :

Il suffit de mettre /mg au lieu de simplement /g. Ça fait considérer la chaîne de caractères comme une chaîne multi-ligne.

Sinon, le ^est compris comme le début d'une chaîne et non tout caractère suivant \n.

@++
Ajouter un commentaire
Ce document intitulé « [Perl] Suppr d'espaces en début de ligne » issu de CommentCaMarche (www.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.
Dossier à la une
Passage au tout numérique : quel coût pour les particuliers ?