Увеличение целого числа в конце строки в Perl - PullRequest
6 голосов
/ 19 июля 2010

У меня есть строка в следующем формате:

\main\stream\foo.h\3

может иметь более или менее «разделы», но всегда будет заканчиваться косой чертой, за которой следует целое число. Другие примеры включают в себя:

\main\stream2309\stream222\foo.c\45

\main\foo.c\9

Мне нужно в Perl увеличить число в конце строки и оставить все остальное в покое. На этом сайте я нашел пример, который делает именно то, что я хочу (см. Увеличение числа в строке с помощью регулярного выражения ), только язык - Javascript. Решение было дано:

.replace(/\d+$/,function(n) { return ++n })

Мне нужно сделать то же самое в Perl.

Ответы [ 2 ]

10 голосов
/ 19 июля 2010

Вы можете использовать модификатор /e regex, чтобы поместить исполняемый код в строку замены.

Что-то вроде:

$string =~ s/(\d+)$/$1 + 1/e;

должно работать.

3 голосов
/ 19 июля 2010

Попробуйте $var =~ s/(\d+$)/($1 + 1)/e

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...