在正则表达式模式匹配后返回下一行(下一个字符串)?(Python)
我试图做的是在.HTML文件中匹配特定结果的标准任务。为此,我使用python并编写了以下代码:在正则表达式模式匹配后返回下一行(下一个字符串)?(Python),python,regex,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文档的下一行。这是从开始到结束的一整条路线,这
...
import re, requests
res = requests.get('http://www.website.com/page.html')
t = res.text
g = re.search("(regex)", t)
这个很好用。但是,我的实际任务是获取字符串,该字符串位于正则表达式找到的字符串之后。它始终位于.html文档的下一行。这是从开始到结束的一整条路线,这可能会使它更容易一点。非常不幸的是,我无法直接用正则表达式找到正确的数据
实现这一点最有效的方法是什么?一个简单的解决方案是迭代行 当一行匹配时,返回下一行:
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
如果文本
是整个多行字符串,则可以重新搜索(r“regex.*\r?\n(+)”,t).group(1)
。