Bonjour, j'ai un petit problème avec les reg-exp...
Je cherche à remplacer tout les espaces contenu entre 2 quotes.
par exemple j'ai une chaine a='hello "every body".linux "is great"'
après le remplacement avec un %20 par exemple, cette chaine devrai etre :
'hello "every%20body".linux "is%20great"'
# je dirais...
Posté par bergamote23 . Évalué à 4.
voila
[^] # Re: je dirais...
Posté par eMerzh (site web personnel) . Évalué à 1.
j'y suis presque ... mais c'est pas encor tout à fais ok....
quand je fait :
$line='Hello "world co" "brol and "';
($b = $line) =~ s/("[^"]*)\s([^"]*")/$1%20$2/g;
print $b."\n";
il me donne :
Hello "world%20co" "brol and%20"
pourquoi il remplace pas l'espace avant "and"...
[^] # Commentaire supprimé
Posté par Anonyme . Évalué à 2.
Ce commentaire a été supprimé par l’équipe de modération.
[^] # Re: je dirais...
Posté par LeSeb (site web personnel) . Évalué à 1.
Certainement pas la plus efficace, mais elle a le mérite de fonctionner ...
my $chaine = 'hello "world co" "brol and " youpi';
foreach my $avant ( $chaine =~ m/"(.*?\s+.*?)"/g )
{
my $apres = $avant;
$apres =~ s/\s/%20/g;
$chaine =~ s/$avant/$apres/;
}
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.