https://issues.dlang.org/show_bug.cgi?id=16288
--- Comment #7 from greenify <greeen...@gmail.com> --- > Doesn't implement desired behaviour. Fair enough - I tried to make it similar to `splitter` in `std.regex`, but it seems that even this didn't work out: "a..b.c".splitter!(Yes.keepSeparators)(regex("[.]")).writeln > ["a", ".", "", ".", "b", ".", "c"] "a..b.c".splitter!(Yes.keepSeparators)('.').writeln; > ["a", ".", ".", "b", ".", "c"] >From the example you posted, you want it to yield sth. like this, right? > ["a", ".", ".b", ".c"] And there's another common use case - though that one is simply splitter.filter!`a.empty`: > ["a", "b", "c"] However, at least the existing behavior for No.keepSeparators is the same: "a..b.c".splitter!(No.keepSeparators)(regex("[.]")).writeln > ["a", "", "b", "c"] "a..b.c".splitter!(No.keepSeparators)('.').writeln; > ["a", "", "b", "c"] --