OVH Cloud OVH Cloud

Césure automatique et brutale

1 réponse
Avatar
Yves Martin
Bonjour,

Je cherche à faire le travail suivant sur une chaîne:
. couper les mots plus longs que 80 caractères en morceaux et les séparés par
un espace

Avez-vous une meilleure idée que:
. split suivant les espaces
. foreach sur la liste, tester la taille, couper une ou plusieurs fois si
nécessaire, alimenter la liste résultat
. join de la liste résultat avec un espace

Merci d'avance
--
Yves Martin

1 réponse

Avatar
jl_morel
Dans l'article , a dit...

Je cherche à faire le travail suivant sur une chaîne:
. couper les mots plus longs que 80 caractères en morceaux et les séparés
par

un espace

Avez-vous une meilleure idée que:
. split suivant les espaces
. foreach sur la liste, tester la taille, couper une ou plusieurs fois si
nécessaire, alimenter la liste résultat
. join de la liste résultat avec un espace



Si un "mot" est constitué de "caractères non blancs" S = [^ tnrf] on
peut faire :

$s =~ s/(S{80})(?=S)/$1 /g;

Si un mot est constitué de n'importe quoi sauf l'espace, alors :

$s =~ s/([^ ]{80})(?=[^ ])/$1 /g;


HTH

--
J-L.M.
http://www.bribes.org/perl