给定这个字符串:
GET /dsadda HTTP/1.1\r\nUser-Agent: curl/7.26.0\r\nHost: www.youtube.com\r\nAccept: */*\r\n\r\n
如何获取 Host: 和 \r\n 之间的 Python 正则表达式组中的所有内容?
在这个例子中,我希望 re.match.group(1) 返回 www.youtube.com
请您参考如下方法:
你可以使用这个正则表达式来匹配
>>> a = 'GET /dsadda HTTP/1.1\r\nUser-Agent: curl/7.26.0\r\nHost: www.youtube.com\r\nAccept: */*\r\n\r\n'
>>> import re
>>> re.search(r"Host: (.+)\r\n",a).group(1)
'www.youtube.com'
小提示 - 最好使用 re.MULTILINE 标志,因为输入字符串包含 \n,尽管在这个特殊情况。 另外,如Antti Haapala提到,使用 ^ 匹配字符串的开头也是一个更好的选择,因为可能有名称为 Host 的 Header 字段。因此,最终的正则表达式类似于 re.search(r"^Host: (.+)\r\n",a,re.M).group(1)。
