【发布时间】:2019-11-18 13:32:16
【问题描述】:
我需要解析具有这种模式的文本:
Lorem ipsum, baby shark, do do doo
Host: MyHostName
Blah, Blah
我正在尝试隔离行Host: MyHostName
在 regex101 中,这个正则表达式运行良好 (?<=Host:).*?(?=$) 但由于某种原因 Python 的 re.findall() 一直返回一个空列表。我已经以多种方式对其进行了调整,但似乎无法使其正常工作。
这里有什么我忽略了吗???
(注意:我使用的是 Python 3.6)
编辑我的代码在上下文中
import re
pattern = r'(?<=Host:)(.*)(?=$)'
data = """
Lorem Ipsum...
Host: MyHostName
"""
x = re.findall(pattern, data)
【问题讨论】:
-
请显示您使用的整个代码。
-
在我的回答中添加多行
-
你不需要
(?=$),只需使用$,它不匹配任何东西。以及为什么要使用非贪婪的.*?,尤其是因为您似乎想排在最后? -
@LogicalKip 当我转换为
$时再次返回空。 -
你首先不需要
$。使用pattern = r'Host:\s*(.+)'
标签: python regex python-3.x