Я пытаюсь сделать некоторый текстовый файл синтаксический, где эта картина повторяется по всему файлу:Multiline регулярное выражение питона
VERSION.PROGRAM:program_name
VERSION.SUBPROGRAM:sub_program_name
Моя цель заключается в, учитывая progra_name, извлекать sub_program_name для каждого блока текста I упомянутое выше.
У меня есть следующая функция, которая находит, если текст на самом деле существует, но не печатает sub_program_name:
def find_subprogram(program_name):
regex_string = r'VERSION.PROGRAM:%s\nVERSION.SUBPROGRAM:.' % program_name
with open('file.txt', r) as f:
match = re.search(regex_string, f.read(), re.DOTALL|re.MULTILINE)
if match:
print match.group()
Я ценю помощь или советы. Thanks
Но я не хочу совпадать с любым символом, я хочу, чтобы он соответствовал блоку текста, который содержит переменную имени программы. Спасибо за помощь. – besty
@ user3263140 Вы могли бы привести пример? –
Да. Например, файл содержит: VERSION.PROGRAM: PROGRAM_1 VERSION.SUBPROGRAM: sub_program_name VERSION.PROGRAM: PROGRAM_2 VERSION.SUBPROGRAM: sub_program_name; То, что я хочу, это только имя_подпрограммы PROGRAM_2, поэтому я использую% s в строке. Используя конкатенацию строк, я получаю те же результаты, r'blabla '+ program_name + r'blabla', но вместо этого выбираю% s. – besty