特别是,我正在尝试获取HTTP请求数据包的HTTP标头的“Host:...”部分。
一个例子是这样的:
$ .. 2〜:。。KA3 ..E..D'.@.@..M....J}.e...P...q...W................g.o3GET./.HTTP/1.1...$..2~.:Ka3
.. E..G” @ ..我....Ĵ} .E。P ....... W¯¯................克.. \主机:.domain.com ..
另一个是:
$ .. 2〜:。。KA3 ..E..D'.@.@..M....J}.e...P...q...W................g.o3GET./.HTTP/1.1...$..2~.:Ka3
.. E..G” @ ..我....Ĵ} .E。P ....... W¯¯................克.. \主机:.domain.com..Connection:.Keep-活....
注意这是ascii输出。我想提取那个主机。我最初的正则表达式是:
[hH]ost:\.(.*)..
这适用于第一种情况,但不适用于第二种情况。特别是,对于第二个,它将提取:“domain.com..Connection.Keep-Alive ..”
对于创建适用于所有情况的通用正则表达式,我将不胜感激。
答案 0 :(得分:1)
使用此:
(?<=host:\.)(?:\.?[^.])+
请参阅demo
(?<=host:\.)
声称前面的内容是host:.
(?:\.?[^.])
匹配一个可选的句点,然后匹配一个不是句号的字符。+
让我们匹配一个或多个这些角色<强>参考强>