Поиск строки по регулярному выражению и увеличение его на 1 - PullRequest
0 голосов
/ 24 декабря 2018

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

desc = "Testing 1.1.1.1"

Я хотел бы найти номер версии в конце строки и увеличить его на 1.

Я могу выполнить поиски получить строку с помощью регулярных выражений, но я не уверен, как увеличить ее на 1 на лету.Любая помощь будет оценена.

import re

line = re.sub(r"\b\d{1}\.\d{1}\.\d{1}\.\d{1}\b", "", line)
print(line)

1 Ответ

0 голосов
/ 24 декабря 2018

Замена в re.sub может быть функцией.Функция получает объект соответствия из регулярного выражения.Вот один из способов сделать это (Python 3.6 +):

import re

line = 'Testing 1.1.1.1'

def func(match):
    # convert the four matches to integers
    a,b,c,d = [int(x) for x in match.groups()]
    # return the replacement string
    return f'{a}.{b}.{c}.{d+1}'

line = re.sub(r'\b(\d+)\.(\d+)\.(\d+)\.(\d+)\b', func, line)
print(line)

Вывод:

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