获取Python中匹配的正则表达式上方的行

获取Python中匹配的正则表达式上方的行,python,regex,python-3.x,extraction,Python,Regex,Python 3.x,Extraction,我想提取正则表达式匹配表达式上方的行 Text 1 28-Apr Text2 Text3 29-Apr 输出:['Text 1','Text3']要做到这一点,您需要在模式出现时找到行号,然后从找到的行号中减去1,得到上面的行。例如,如果模式出现在第2行和第4行,则需要获得第1行和第3行。请查看下面的示例代码: import re string = """Text 1 28-Apr Text2 Text3 29-Apr""" pattern = '\d*\-\w*' lines_n

我想提取正则表达式匹配表达式上方的行

Text 1
28-Apr
Text2
Text3
29-Apr

输出:
['Text 1','Text3']

要做到这一点,您需要在模式出现时找到行号,然后从找到的行号中减去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])

regexp的值是?代码在哪里?你已经试过什么了?