Вычислить количество последовательных символов в строке с помощью Perl

У меня есть строка с несколькими последовательностями последовательных символов, например:

aaabbcccdddd

Я хочу представить это как: a3b2c3d4

На данный момент я придумали это:

#! /usr/bin/perl

$str = "aaabbcccdddd";
$str =~ s/(.)\1+/$1/g;

print $str."\n";

Вывод:

abcd

Он сохраняет последовательные символы в буфере захвата и возвращает только один.Тем не менее, я хочу подсчитать количество последовательных символов в буфере захвата, а затем отобразить только один символ, за которым следует этот счет, чтобы вывод отображался как a3b2c3d4вместо abcd.

Какая модификация требуется для приведенного выше регулярного выражения?

6
задан Jonathan Leffler 10 June 2012 в 14:14
поделиться