匹配正则表达式模式后返回下一行(下一个字符串)? (Python)的

时间:2017-04-26 12:37:44

标签: python regex

我想要做的是在.HTML文件中匹配特定结果的相当标准的任务。为此我使用python并编写了这段代码:

...

import re, requests

res = requests.get('http://www.website.com/page.html')

t = res.text

g = re.search("(regex)", t)

...

这很好用。但是,我的实际任务是获取字符串,跟随我的正则表达式找到的字符串。在.html文档的以下行中始终。这是从头到尾的整条线,这可能会让它更容易一些。非常不幸的是,我无法直接使用正则表达式找到正确的数据。

实现这一目标的最有效方法是什么?

1 个答案:

答案 0 :(得分:0)

一个简单的解决方案是迭代线。

当一行匹配时,返回下一行:

import re

text = """abc
def
ghi
klm
"""

pattern = re.compile('def')

def find_following_line(text):
    lines = text.splitlines()
    for i, line in enumerate(lines):
        if re.search(pattern, line):
            return lines[i+1]

print(find_following_line(text))
# ghi