Я хотел заменить точки ('.'
) последовательностью символов, например, foo.bar
> fooDOTbar
, но только если точка не находилась между двумя числами, например, 0.9
> 0.9
.Итак, я сделал:
regex = re.compile(r'([a-zA-Z])(?P<dot>\.)([a-zA-Z])')
input_str = 'foo.bar'
output = regex.sub(r'DOT\g<dot>', input_str)
print(output)
'foDOT.ar'
Что совсем не то, что я ожидал.Я попытался заменить .sub()
на .search()
, похоже, он работает нормально (match.group('dot')
возвращает '.'
).