OVH Cloud OVH Cloud

String: couper une phrase en 2

1 réponse
Avatar
Sébastien Cottalorda
Salut à tous,

je suis à la recherche d'un module qui me permette de découper une phrase en
plusieurs de façon à ce qu'aucun mot ne soit coupé.

Exemple:

"Voici ma phrase, elle est bien longue ma phrase, trop longue !"
Si je souhaite couper à 33 caractères (au milieu du 1er "longue")
je souhaiterais avoir =>
"Voici ma phrase, elle est bien
longue ma phrase, trop longue !"

Je voudrais trouver un module qui, une fois que je lui ai précisé la largeur
max de ma phrase, me la coupe en 2 ou plus mais sans couper un mot en 2.

Sur le CPAN, ne n'ai pas trouvé un tel module (Text:: .... ???)

Merci d'avance.

Sébastien

1 réponse

Avatar
Ronan Le Hy
Sébastien Cottalorda wrote:
Je voudrais trouver un module qui, une fois que je lui ai précisé la largeur
max de ma phrase, me la coupe en 2 ou plus mais sans couper un mot en 2.


Text::Wrap est dans la distrib standard (au moins dans 5.8.0).

lehy> perl -MText::Wrap=wrap,$columns -wle '$columns3; print wrap
"","","Voici ma phrase, elle est bien longue ma phrase, trop longue !"'
Voici ma phrase, elle est bien
longue ma phrase, trop longue !

lehy> perl -MText::Wrap=wrap,$columns -wle '$columns; print wrap
"","","Voici ma phrase, elle est bien longue ma phrase, trop longue !"'
Voici ma
phrase, elle
est bien
longue ma
phrase, trop
longue !

Pour des choses plus compliquées, il y a aussi Text::Autoformat (et
quelques autres sur CPAN, comme Text::Format, Text::Reform...).

HTH

--
Ronan