Multisplit
sub multisplit($str, @seps) { $str.split: / ||@seps /, :v }
my @chunks = multisplit 'a!===b=!=c==d', < == != = >;
# Print the strings.
say @chunks».Str.raku;
# Print the positions of the separators.
for grep Match, @chunks -> $s {
say "{$s.fmt: '%2s'} from {$s.from.fmt: '%2d'} to {$s.to.fmt: '%2d'}";
}Output:
("a", "!=", "", "==", "b", "=", "", "!=", "c", "==", "d")
!= from 1 to 3
== from 3 to 5
= from 6 to 7
!= from 7 to 9
== from 10 to 12Last updated