Получить строку над соответствующим выражением регулярного выражения в Python - PullRequest
0 голосов
/ 17 января 2019

Я хочу извлечь строку над выражением с регулярным выражением.

Text 1
28-Apr
Text2
Text3
29-Apr

Вывод: ['Text 1', 'Text3']

1 Ответ

0 голосов
/ 17 января 2019

Чтобы сделать это, вам нужно найти номера строк, когда ваш шаблон встречается, а затем получить строки выше, вычитая 1 из найденных номеров строк. Например, если ваш шаблон встречается в строках 2 и 4, вам нужно получить строки 1 и 3. Пожалуйста, посмотрите пример кода ниже:

import re

string = """Text 1
28-Apr
Text2
Text3
29-Apr"""





pattern = '\d*\-\w*'
lines_number  = []
for m in re.finditer(pattern, string):
    start = m.start()
    lineno = string.count('\n', 0, start)


    lines_number.append(lineno)

for l in lines_number:
    print(string.split('\n')[l-1])
...