2010-12-28 4 views
2

Мои первые вопросы здесь.Perl: заменить последовательные цифры на их счет

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

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

Я хочу, чтобы заменить в 52132132

вообще number1<count>number2<count>...numbern<count>

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

ответ

6
$digits = "55111233"; 
$digits =~ s/((\d)\2*)/$2 . length($1)/ge; 
print $digits; 
2

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

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

Тонкой очередность ошибки; попробуйте с $ str = "9999999999"; – ysth

+0

@ysth: nice catch :) – codaddict