Berikut versi satu-baris regex:
System.out.println(Arrays.toString(
"Thequickbrownfoxjumps".split("(?<=\\G.{4})")
));
\G
adalah pernyataan nol-lebar yang cocok dengan posisi di mana pertandingan sebelumnya berakhir. Jika ada itu tidak ada pertandingan sebelumnya, cocok dengan awal input, sama seperti \A
. Tampilan terlampir di belakang cocok dengan posisi yang terdiri dari empat karakter sejak akhir pertandingan terakhir.
Keduanya terlihat di belakang dan \G
merupakan fitur regex canggih, tidak didukung oleh semua rasa. Selain itu, \G
tidak diterapkan secara konsisten di seluruh rasa yang mendukungnya. Trik ini akan berfungsi (misalnya) di Java , Perl, .NET dan JGSoft, tetapi tidak dalam PHP (PCRE), Ruby 1.9+ atau TextMate (keduanya Oniguruma). JavaScript /y
(flag lengket) tidak sefleksibel \G
, dan tidak dapat digunakan dengan cara ini meskipun JS memang mendukung tampilan di belakang.
Saya harus menyebutkan bahwa saya tidak selalu merekomendasikan solusi ini jika Anda memiliki opsi lain. Solusi non-regex dalam jawaban lain mungkin lebih lama, tetapi mereka juga mendokumentasikan diri sendiri; ini hanya kebalikan dari itu. ;)
Juga, ini tidak berfungsi di Android, yang tidak mendukung penggunaan tampilan \G
di belakang.