0

我有需要解析的文本具有这种模式:

Lorem ipsum, baby shark, do do doo

    Host: MyHostName

Blah, Blah

我正在尝试隔离线路Host: MyHostName

在 regex101 中,这个正则表达式运行良好(?<=Host:).*?(?=$),但由于某种原因 Pythonre.findall()不断返回一个空列表。我已经以多种方式对其进行了调整,但似乎无法使其正常工作。

有什么我在这里忽略的吗???

(注意:我使用的是 Python 3.6)

在上下文中编辑我的代码

import re
pattern = r'(?<=Host:)(.*)(?=$)' 
data = """ 
        Lorem Ipsum...
          Host: MyHostName
        """

x = re.findall(pattern, data)
4

2 回答 2

0
import re

regex = r"(?<=Host:).*?(?=$)"

test_str = ("Lorem ipsum, baby shark, do do doo\n\n"
    "    Host: MyHostName\n\n"
    "Blah, Blah")

matches = re.findall(regex, test_str, re.MULTILINE)

print(matches)
于 2019-11-18T13:34:29.303 回答
0

我会保持简单,只需使用以下正则表达式模式:

\bHost: \S+

脚本:

text = """Lorem ipsum, baby shark, do do doo

    Host: MyHostName

Blah, Blah"""

matches = re.findall(r'\bHost: \S+', text)
print(matches)

这打印:

['Host: MyHostName']
于 2019-11-18T13:42:17.807 回答