Постепенное увеличение целого числа в конце строки в жемчуге

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

\main\stream\foo.h\3

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

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

\main\foo.c\9

Я должен, в Perl, увеличиваю число в конце строки и оставляю остальных в покое. Я нашел пример на этом сайте, который делает точно, что я хочу сделать (см. Инкремент число в строке в с regex), только языком является JavaScript. Данное решение было:

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

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

6
задан Community 23 May 2017 в 11:51
поделиться

2 ответа

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

Примерно так:

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

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

10
ответ дан 8 December 2019 в 18:30
поделиться

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

3
ответ дан 8 December 2019 в 18:30
поделиться
Другие вопросы по тегам:

Похожие вопросы: