Perl: заменить последовательные цифры их количеством - PullRequest
2 голосов
/ 28 декабря 2010

Мои первые вопросы здесь.

У меня есть строка цифр, как 55111233

как вы можете видеть 5 дважды подряд, 1 трижды 2 один раз и 3 дважды.

Я хочу заменить его на 52132132

в целом number1<count>number2<count>...numbern<count>

Пожалуйста, ведите меня.

Ответы [ 2 ]

6 голосов
/ 28 декабря 2010
 $digits = "55111233";
 $digits =~ s/((\d)\2*)/$2 . length($1)/ge;
 print $digits;
2 голосов
/ 28 декабря 2010

Вы можете сделать:

$str =~s/(\d)(\1*)/$1.(length($2)+1)/eg;
...