Так что я пытаюсь захватить строку из BibTex, используя regex в python. Вот часть моей строки:python regex найти совпадение, которое охватывает несколько строк
a = '''title = {The Origin ({S},
{Se}, and {Te})- {TiO$_2$} Photocatalysts},
year = {2010},
volume = {114},'''
Я хочу, чтобы захватить строку для заголовка, который:
The Origin ({S},
{Se}, and {Te})- {TiO$_2$} Photocatalysts
Сейчас у меня этот код:
pattern = re.compile('title\s*=\s*{(.*|\n?)},\s*\n', re.DOTALL|re.I)
pattern.findall(a)
Но только это дает мне:
['The Origin ({S},\n {Se}, and {Te})- {TiO$_2$} Photocatalysts},\n year = {2010']
Как я могу получить всю строку заголовка без информации year
? Много раз, year
не сразу после title
. Поэтому я не могу использовать:
pattern = re.compile('title\s*=\s*{(.*|\n?)},\s*\n.*year', re.DOTALL|re.I)
pattern.findall(a)
Возможный дубликат http://stackoverflow.com/questions/587345/python-regular-expression-matching-a-multiline-block-of-text –
Я пробовал это, но все еще не мог решить свою проблему. –