У меня есть файл с некоторым содержанием, а также две строки 'include' ниже:
some string1
some string2
...
include: "base_pricing_app_model_my_deployment_id.model.lkml"
include: "base_map_layers.model.lkml"
...
some string3
...
Подстрока "my_deployment_id" - это токен, который мне нужно добавить ко второй строке 'include', чтобы содержимое файла выглядело так:
some string1
some string2
...
include: "base_pricing_app_model_my_deployment_id.model.lkml"
include: "base_map_layers_my_deployment_id.model.lkml"
...
some string3
Я использую Python 3.5 и использую его библиотеку re. Вот как я пытаюсь заменить вторую строку include:
with fileinput.input(files=(rfi), inplace=True) as cmodf:
for line in cmodf:
match_no_dep_id = re.sub('^include:\s\"(?!my_deployment_id).*[.]model[.]lkml\"$', line.split('.')[0] + '_' + 'my_deployment_id' + 'model.lkml' + '"', line)
print(match_no_dep_id, end='')
Однако обе записи «include» модифицируются, и я получаю следующее содержимое:
some string1
some string2
include: "base_pricing_app_model_my_deployment_id_my_deployment_id.model.lkml"
include: "base_map_layers_my_deployment_id.model.lkml"
some string3
...
Так что мое отрицательное регулярное выражение регулярного выражения соответствует обеим строкам, включая ту, которая уже содержит токен, который я отрицаю.
Я не уверен, что мне здесь не хватает.
Пожалуйста, помогите.
Спасибо!