Я пытаюсь извлечь заголовки некоторых таблиц из простого текста с регулярным выражением на python.
Простой тест был экспортирован из некоторых файлов PDF, которые имели много \n
с.Я пытался остановить сопоставление перед первым появлением шаблона \n \n\n
, но регулярное выражение всегда возвращало мне еще несколько символов.
Вот пример.
Строка была:
contents = '\n\n\n\n\n\n\n\nClient: ABC area: Location Mc\nHole: 33-44 \n \n\n \n\nKJK TechCen Rep # 5243 \n \n\n \n\n95 \n\nTable 3.1: Joined Liq L1 (P = 40 \n@ 12), Test With 2 % \n\noF \n \n\n PressRel V \n% \n\nLiq/To \n% \n\nLiq/Sat \nBu \n\nDenCom'
Я использовал регулярное выражение:
re.findall(r'Table *\d.+:* *[a-zA-Z0-9 :&–=\n%@,()°-]+ [^ \n \n\n ]', contents)
Я хотел, чтобы результирующая строка начиналась с 'Table XXX'
и заканчивалась прямо передfirst ' \n \n\n '
, вот так:
'Table 3.1: Joined Liq L1 (P = 40 \n@ 12), Test With 2 % \n\noF '
Но фактическая строка, которую я получил, была:
'Table 3.1: Joined Liq L1 (P = 40 \n@ 12), Test With 2 % \n\noF \n \n\n PressRel V'
Так, как я мог изменить регулярное выражение, чтобы избавиться от надоедливых '\n \n\n PressRel V'