У меня есть номер версии в файле, подобном этому:
Тестирование xxxx
Так что я получаю его так:
import re
def increment(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}'
lines = open('file.txt', 'r').readlines()
lines[3] = re.sub(r"\b(\d+)\.(\d+)\.(\d+)\.(\d+)\b", increment, lines[3])
Я хочу сделать так, чтобы последняя цифра была 9
..., затем измените ее на 0
, а затем измените предыдущую цифру на 1. Так что 1.1.1.9
изменится на 1.1.2.0
.
Я сделал это, выполнив:
def increment(match):
# convert the four matches to integers
a,b,c,d = [int(x) for x in match.groups()]
# return the replacement string
if (d == 9):
return f'{a}.{b}.{c+1}.{0}'
elif (c == 9):
return f'{a}.{b+1}.{0}.{0}'
elif (b == 9):
return f'{a+1}.{0}.{0}.{0}'
Проблема возникает, когда его 1.1.9.9
или 1.9.9.9
.Где несколько цифр надо округлить.Как я могу решить эту проблему?