2017-09-27 147 views
0

我想只提取在的Python 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" 

我目前使用命令行上此表达式的格式包含数据的记录的IP地址和URL部分正则表达式:

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

和它产生的这些作为结果:

http://198.123.123.123/index.html 

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

但是我想REGUL AR表达产生仅这些部分:

http://198.123.123.123/ 

http://abc.weatherabc.org/ 

http://198.123.123.123 

http://abc.weatherabc.org 

请帮助。提前致谢!

+0

所以,你的问题其实是关于从URL中取出部件? –

+0

你不能用这个吗? 'http:\/\/[0-9a-zA-z \。] +' – David

+0

'(?<= \“)http [^ \”] +(?= /)'? [链接](https://regex101.com/r/YsqivJ/1) – Gurman

回答

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

搜索关键字HTTP这是常见并且结束于第一/

  • “看起来为”
  • HTTP://这将匹配的http://
  • [^ /] +这将匹配除了/
  • 括号用于提取所需的数据这就是为什么“被外括号中。这被称作基团。
0123中的所有字符

如果你在结尾处不需要/只需将其添加到组

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

请提供一个示例,稍微描述一下。 – bhansa