2017-09-27 146 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