123456789101112131415161718 |
- #!/usr/bin/ruby
- #
- ## https://rosettacode.org/wiki/Split_a_character_string_based_on_change_of_character
- #
- func group(str) {
- gather {
- while (var match = (str =~ /((.)\g{-1}*)/g)) {
- take(match[0])
- }
- }
- }
- say group(ARGV[0] \\ 'gHHH5YY++///\\').join(', ')
- assert_eq(group('gHHH5YY++///\\'), ["g", "HHH", "5", "YY", "++", "///", "\\"])
|