Split a character string based on change of character: Difference between revisions

(Add Swift)
Line 1,284:
 
=={{header|Perl}}==
<lang perl>use strict;
{{works with|Perl|5.x}}
use warnings;
<lang perl>my $str = 'gHHH5YY++///\\';
use feature 'say';
$str =~ s/((.)\g{-1}*)/$1, /g;
use utf8;
$str =~ s/, $//; # remove trailing ,
binmode(STDOUT, ':utf8');
print "$str\n";
 
</lang>
for my $string (q[gHHH5YY++///\\], q[fffn⃗n⃗n⃗»»» ℵℵ☄☄☃☃̂☃🤔🇺🇸🤦♂️👨‍👩‍👧‍👦]) {
my @S;
my $last = '';
while ($string =~ /(\X)/g) {
if ($last eq $1) { $S[-1] .= $1 } else { push @S, $1 }
$last = $1;
}
say "Orginal: $string\n Split: 「" . join('」 「', @S) . "」\n";
}</lang>
{{out}}
<pre>Orginal: gHHH5YY++///\
<pre>
Split: 「g, HHH, 5, YY, ++, ///, \
 
</pre>
Orginal: fffn⃗n⃗n⃗»»» ℵℵ☄☄☃☃̂☃🤔🇺🇸🤦♂️👨‍👩‍👧‍👦
Split: 「fff」, 「」, 「n⃗n⃗n⃗」, 「»»»」, 「 」, 「ℵℵ」, 「☄☄」, 「☃」, 「☃̂」, 「☃」, 「🤔」, 「🇺🇸」, 「🤦♂️」, 「👨‍👩‍👧‍👦」</pre>
 
=={{header|Perl 6}}==
2,392

edits