Вопрос: Регулярное выражение Perl заменяет цифры самим собой, только один выше


У меня есть текст, как я могу заменить все числа в нем собой только одним выше?

Я пробовал такие вещи, как:

$buffer_content=~s/(\d)/($1++)/g;

10


источник


Ответы:


использование s///e - модификатор оценки, и вы можете поместить произвольные Perl-коды во вторую часть.

$x = "hello 3";
$x =~ s/([0-9]+)/$1 + 1/eg;
print $x;

// hello 4

ссылка: http://perldoc.perl.org/perlretut.html#Search-and-replace


14