Voici la regex one-liner version:
System.out.println(Arrays.toString(
"Thequickbrownfoxjumps".split("(?<=\\G.{4})")
));
\G
est un zéro-largeur affirmation qui correspond à la position où le précédent match s'est terminé. Si il n'y a pas de match précédent, il correspond au début de l'entrée, le même que l' \A
. La enfermant lookbehind correspond à la position que les quatre personnages de la fin du dernier match.
Les deux lookbehind et \G
sont à un stade avancé de la regex de fonctionnalités, non pris en charge par toutes les saveurs. En outre, \G
n'est pas mis en œuvre de manière cohérente à travers les saveurs qui ne le soutien. Cette astuce fonctionne (par exemple) en Java, Perl, .NET et JGSoft, mais pas en PHP (PCRE), Ruby 1.9+ ou TextMate (les deux Oniguruma).
EDIT: je tiens à préciser que je n'ai pas forcément recommander cette solution si vous avez d'autres options. Le non-regex solutions dans les autres réponses peuvent être plus longue, mais ils sont aussi l'auto-documentation; celui-ci est à peu près le contraire de cela. ;)