Split inclusif et exclusif

JamieMacUloth Messages postés 43 Date d'inscription   Statut Membre Dernière intervention   -  
[Dal] Messages postés 6205 Date d'inscription   Statut Contributeur Dernière intervention   -
Slt tt le monde,
J'ai mettons un string
$str = je - aime les fraises des - bois
et j'aimerais splitter sur les '-' et sur 'fraises' en gardant 'fraises'
J'ai testé ça:
my @arr = split(/-|(fraises)/,$str);
mais ça me met des composantes undef dans le @arr, aucune idée pourquoi.
Le résultat final que j'aimerais obtenir est donc:

je
aime les
fraises
des
bois

Anyone can help pleaz ??
Merci d'avance
A voir également:

1 réponse

[Dal] Messages postés 6205 Date d'inscription   Statut Contributeur Dernière intervention   1 105
 
Pas de undef, chez moi. Par contre tu ne gères pas les espaces.

Tu peux utiliser split et retraiter le résultat, en supprimant les tirets et les espaces en trop.

#!/usr/bin/perl

use strict;
use warnings;
use Data::Dumper;

my @list = split(/(\s-\s|\sfraises\s)/, "je - aime les fraises des - bois");
@list = grep(!/\s-\s/, @list);          # remove hyphens from list
for (@list) { s/\sfraises\s/fraises/; } # remove extra spaces around fraises
print Dumper(@list);

donne :
$VAR1 = 'je';
$VAR2 = 'aime les';
$VAR3 = 'fraises';
$VAR4 = 'des';
$VAR5 = 'bois';

Dal
0