用于IP地址和URL的Python正则表达式

时间:2017-09-27 05:07:52

标签: python regex python-2.7 sys

我试图仅提取包含

格式数据的日志的IP地址和URL部分
153.12.123.123 - - [13/Nov/2014:15:06:43 -0700] "GET /icons/AHPS/0.06.png HTTP/1.1" 123 1234 "http://198.123.123.123/index.html" "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:33.0) Gecko/1234567 Firefox/33.0"

153.12.123.123 - - [13/Nov/2014:15:06:43 -0700] "GET /icons/AHPS/0.06.png HTTP/1.1" 123 1234 "http://abc.weatherabc.org/?Center=38.123456789" "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:33.0) Gecko/1234556 Firefox/33.0"

我目前在命令行上使用此表达式:

[^\"]*\"[^\"]*\"[^\"]*\"([^\"]*)\"

它产生这些结果:

http://198.123.123.123/index.html

http://abc.weatherabc.org/?Center=38.123456789

但是我想要一个只产生这些部分的正则表达式:

http://198.123.123.123/

http://abc.weatherabc.org/

http://198.123.123.123

http://abc.weatherabc.org

请帮忙。提前谢谢!

1 个答案:

答案 0 :(得分:0)

"(http://[^/]+)

搜索常用的关键字http,并在第一个/

结束
  • “寻找”
  • http://这将匹配http://
  • [^ /] +这将匹配除/
  • 之外的所有字符
  • 括号用于提取所需的数据,这就是为什么“在括号外。这被称为群组。

如果您需要/最后只需将其添加到群组

"(http://[^/]+/)