Je ne sais pas le nom exact C#, mais il devrait être quelque chose comme
str.Replace("(.{80})", "$1\r\n");
L'idée est de saisir 80 caractères et l'enregistrer dans un groupe, puis le remettre dans (je pense " $ 1 "est la bonne syntaxe) avec le" \ r \ n ".
(Edit: Le regex original avait une +
en elle, que vous ne voulez certainement pas que cela éliminer complètement tout sauf la dernière ligne et tous les morceaux restants - un résultat nettement suboptimale..)
Notez que de cette façon, vous allez probablement diviser les mots à l'intérieur, de sorte qu'il pourrait être très moche.
Vous devriez plutôt vous intéresser à l'habillage de mots si c'est en fait censé être un texte lisible. Un peu googling a augmenté un couple de functions; ou s'il s'agit d'une zone de texte, vous pouvez simplement activer le WordWrap property.
En outre, consultez le .Net page à regular-expressions.info. C'est de loin le meilleur site de référence pour les regex que je connaisse. (Jan Goyvaerts est sur SO, mais personne ne m'a dit de le dire.)
Voulez-vous vraiment le faire tous les quatre-vingts caractères ou seulement le faire lors de sauts de mots? –
PHP a http://www.php.net/wordwrap, je serais choqué si quelque chose n'existe pas pour cela en C# –
Franchement, une expression régulière pour mettre en forme une colonne de largeur fixe comme ceci est probablement au bas de ma liste de façons de le faire. Sauvegarder une simple boucle for (qui peut être jetée dans une méthode statique) en échange d'une expression régulière ressemble à une bombe nucléaire pour tuer une mouche. –