我有一個網頁,使用Python中的資源模塊從中獲取文本。但是,我沒有得到它,如何從文檔中獲得像126.23.73.34這樣的數字模式,並使用re模塊將其提取出來?如何在Python中使用re(gex)在文本中找到像252.63.71.62這樣的模式?
回答
如果你正在尋找一個完整的正則表達式來獲得IPv4地址,你可以找到最合適的正則表達式here您可以使用正則表達式的IP d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}
text = "126.23.73.34";
match = re.search(r'\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}', text)
if match:
print "match.group(1) : ", match.group(0)
。
來限制IP地址的所有4個數字0-255,你可以用這一個從上面的源採取:
(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)
這是正確的正則表達式IPv4地址btw:'\ b(25 [0-5] | 2 [0-4] [0-9] | [01]?[0-9] [0-9]?)\。(25 [0- 5] | 2 [0-4] [0-9] | [01] [0-9] [0-9])\(25 [0-5] | 2 [0-4] - [O- 9] | [01] [0-9] [0-9])\(25 [0-5] |?2 [0-4] [0-9] | [01] [0-9] [0-9]?)\ b' – tamasgal 2013-05-03 10:57:41
是的。我不確定他是否在尋找知識產權,但我承擔了很多。我將包含一個鏈接作爲參考。 – eandersson 2013-05-03 10:58:24
我不確定您的答案結果的格式是OP所需的,請參閱:C:\ wamp \ www> Example.py ('192','168','0','1') ('192','168','0','254') – o0rebelious0o 2013-05-03 11:31:50
您可以使用此。它只會接受VALID IP地址:
import re
pattern = "\\b(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\b"
text = "192.168.0.1 my other IP is 192.168.0.254 but this one isn't a real ip 555.555.555.555"
m = re.findall(pattern, text)
for i in m :
print(i)
OUTPUT:
C:\wamp\www>Example.py
192.168.0.1
192.168.0.254
--Tested和工作
當然可行,但如果它不是一個有效的IP呢?例如555.168.0.1? – eandersson 2013-05-03 11:04:52
現在的問題是,我引用「從文檔中獲取126.23.73.34等數字模式並將其提取出來」並沒有說明實際驗證提取的值 – o0rebelious0o 2013-05-03 11:08:09
這並不意味着其他人不會看看這個問題一個月,或從現在開始。提供最完整的答案始終符合社區的最佳利益。 – eandersson 2013-05-03 11:14:49
如果,如果它是一個html文本;你可以使用HTML解析器(如BeautifulSoup
)解析它,一個正則表達式來選擇一些字符串看起來像一個IP,並socket
模塊驗證IPS:
import re
import socket
from bs4 import BeautifulSoup # pip install beautifulsoup4
def isvalid(addr):
try:
socket.inet_aton(addr)
except socket.error:
return False
else:
return True
soup = BeautifulSoup(webpage)
ipre = re.compile(r"\b\d+(?:\.\d+){3}\b") # matches some ips and more
ip_addresses = [ip for ips in map(ipre.findall, soup(text=ipre))
for ip in ips if isvalid(ip)]
注:只從文本如提取IPS ,它會忽略html屬性中的ips。
- 1. Python使用RE在文本文件中找到整數
- 2. 如何使用python re在文本中找到包含短語的句子?
- 3. 如何使用模塊re在文件中查找關鍵字
- 4. 如何在python中像這樣分割文本文件?
- 5. 如何在使用linux shell腳本的文件中找到這種模式?
- 6. 如何在數組中找到像這樣的特定模式 - > [數字]?
- 7. Python RE在文本文檔中查找特定的單詞
- 8. Python Re模塊在這個例子中如何工作?
- 9. 如何在python3中使用re模塊替換模式
- 10. 如何在使用python的文本塊中找到文件名?
- 11. 如何在python中模擬像'open'這樣的內置方法?
- 12. Python中是否存在像這樣的模式匹配函數?
- 13. 使用re在字符串中查找模式'ds ***'
- 14. 在Python中使用<code>re</code>模塊找到並在一行中使用Python
- 15. 如何在代碼中重現像這樣的scribbly模式?
- 16. 使用Python Re模塊從多行中提取文本
- 17. 如何在php腳本中使用這樣的樣本json?
- 18. 我如何在Python中格式化文本,就像在Illustrator中一樣?
- 19. 使用re在多個標籤中查找文本
- 20. 如何在這個角度2樣本上使用HTML5模式?
- 21. Python使用re模塊解析導入的文本文件
- 22. 如何在壓縮文本文件中查找文本模式?
- 23. 如何使用J2ME在Blackberry中顯示像marque這樣的滾動文本?
- 24. 如何使用python中的模式在字符串中找到一個字
- 25. 如何使用opencv檢測圖像中的文本樣式?
- 26. 如何在Drupal 8樹枝模板中使用圖像樣式?
- 27. 在驅動器中使用python re
- 28. 如何在Python中找到模塊'posix'?
- 29. C#中的ComImport,如何在shell32.dll中找到像IFileDialog這樣的類的GUID?
- 30. 在Python中使用re查找引號中的項目,但未使用引號,
如果你想提取IP,這可以幫助 - > http://stackoverflow.com/questions/2890896/extract-ip-address-from-an-html-string-python – 2013-05-03 10:48:51