【发布时间】:2018-12-17 10:39:51
【问题描述】:
我有一个带有行分隔字符串的全文。以“%”开头的行是标题,以“>”开头的行包含我要在其中查找我的查询的文本。如果找到我的查询,我想返回它上面最近的标题。这是我自己试过的表达方式:
import re
query = "ABCDE"
full_text = "%EFGHI\r>XXXXX\r>XXXXX\r%IWANT\r>XXXXX\r>ABCDE"
re.search("%(.*?)\r(?=>.*{})".format(query), full_text).group(0)
我希望这个代码块返回字符串:
> 'IWANT'
因为这是查询上方最接近的标题。但是,它返回:
> 'EFGHI'
我想这是有道理的,因为 'EFGHI' 是匹配搜索模式的第一个元素。有没有办法先查找我的查询,然后再查找最近的标题?
【问题讨论】:
标签: python regex regex-lookarounds regex-group