获取 Python 中匹配的正则表达式上方的行
Get the line above the matched regex expression in Python
我想提取正则表达式匹配表达式上方的行。
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])
我想提取正则表达式匹配表达式上方的行。
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])