Я использую re.sub для поиска шаблона и замены совпадений, причем замена является условной в зависимости от совпадения.Как передать совпадение в качестве аргумента?python-3.7
Я успешно прошел 'match', если я использую следующее:
string = re.sub(r"{(.*?)}", replaceVar, string)
Но этот метод не позволяет мне передавать дополнительные аргументы, что мне и нужноделать.
import re
def matchVar(match, another_argument):
if match.group(1) == another_argument:
return f'{{{another_argument}}}'
else:
return f'{{{another_argument}[{match.group(1)}]}}'
def replaceVar(string, another_argument):
string = re.sub(r"{(.*?)}", matchVar(match, another_argument), string)
return string
string = 'This is a {x} sentence. This is another {y} sentence.'
another_argument = 'x'
string = replaceVar(string, another_argument)
print(string)
Строка должна привести к
'This is a {x} sentence. This is another {x[y]} sentence.'
Но вместо этого я получаю сообщение об ошибке «NameError: имя« match »не определено».
(Я понимаю, что «match» не определено. Я не уверен, как определить «match».)
Как передать «match» в качестве аргумента?Спасибо!