Python正则表达式:在字符串匹配后获取下一行

时间:2015-11-12 14:18:01

标签: python regex

我一直在搜索此论坛以查找我的问题,但无法找到合适的解决方案,因此请发布查询。

使用urllib和re模块提取网页的某些部分。感兴趣的还有与这些部分相关的状态。

例如,查看网页的来源:

  

MY-TEXT#1410完成了子任务PREPARE-WORKSPACE#340418:https://cloud6.foo.bar.com/b/job/PREPARE-WORKSPACE/340418

     

'> SUCCESS

使用re.compile和re.findall提取此模式之后的文本“https://cloud6.foo”;这匹配所有文本并使用此列表我已经确认它是如此;但是我对这个特定任务的状态感到失望,因为它位于“https://”行之后的行中。

如何在当前场景中的匹配字符串后提取一行?

代码段在这里:

from urllib import urlopen
import re

webpage = urlopen(urllink).read()
buildPhases = re.compile(r'\<a href=\W{1}https\W{3}(.*)')
phaseLists = re.findall(buildPhases, webpage)
for item in phaseLists:
    print item

1 个答案:

答案 0 :(得分:0)

要在匹配字符串后提取一行,您需要在正则表达式中添加.*\n 例如,如果我们采取:

MY-TEXT#1410完成了子任务PREPARE-WORKSPACE#340418:https://cloud6.foo.bar.com/b/job/PREPARE-WORKSPACE/340418

'&GT; SUCCESS

并应用此模式r'https.*\n.*\n.*'结果应该是上面的字符串,而不是:

MY-TEXT #1410 finished subtask PREPARE-WORKSPACE #340418: