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
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
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
Dans l'article <f6fyl1d710.fsf@pcyma.elca.ch>, ymartin@nospam.fr 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 :
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 :