什麼是隻能找到可路由的IPv4地址的正則表達式? EG,不符合192.0.2.1/24,127.0.0.1等Google似乎只能找到所有太常見的'是一個ip地址'的正則表達式。只適用於IPv4的正則表達式僅適用於可路由地址
1
A
回答
3
試圖在正則表達式中實現業務規則是一個壞主意。
只解析IP地址,並檢查它是否滿足您的代碼標準。
0
無論如何你都無法在正則表達式中做到這一點,效率不高。解析它,然後檢查特殊地址(多播,RFC 1918等)。
0
試試這個:
^([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])(?<!172\.(16|17|18|19|20|21|22|23|24|25|26|27|28|29|30|31))(?<!127)(?<!^10)(?<!^0)\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])(?<!192\.168)(?<!172\.(16|17|18|19|20|21|22|23|24|25|26|27|28|29|30|31))\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])(?<!\.0$)(?<!\.255$)$
它正確地不匹配這個無效的IPS:
999.999.999.999.
108.0.0.01
0.1.2.3
00.0000.00.00
192.168.1.1
912.456.123.123
.3.3.3.0
3.2.2.0
192.168.0.0
18.16.0.0
它不匹配本地IP地址:
172.16.0.9
172.16.4.1
172.17.1.1
127.0.0.2
10.0.1.5
10.0.0.1
10.155.155.155
10.255.255.254
172.16.0.4
172.16.0.1
172.17.1.1
172.31.254.254
最後它不符廣播IP地址:
60.123.247.255
196.168.255.255
10.255.255.255
192.168.255.255
每隔IP我測試過的是一場比賽,到目前爲止,但我還沒有徹底完成,所以可能會有一些錯誤。
相關問題
- 1. 用於IPv4地址範圍的正則表達式
- 2. Pyyhon正則表達式適用於OSx,但不適用於Windows
- 3. Java正則表達式適用於Linux,但不適用於Windows
- 4. 正則表達式不適用於RedirectMatch
- 5. 正則表達式不適用於Ruby!
- 6. 僅適用於Alpha數字的正則表達式類?
- 7. 正則表達式僅適用於1個URL
- 8. 正則表達式僅適用於數字和單點
- 9. 正則表達式僅適用於網站
- 10. PHP preg_replace崩潰。僅適用於正則表達式大師
- 11. 適用於AS路徑的JunOS正則表達式
- 12. 正則表達式只適用於電話號碼和擴展
- 13. preg_replace |正則表達式 - 只適用於一部分
- 14. React路由器只適用於/路徑
- 15. Powershell正則表達式適用於一行,但不適用於其他
- 16. 正則表達式適用於PCRE和Python,但不適用於Javascript
- 17. 正則表達式替換適用於Ruby gsub,但不適用於sed
- 18. 正則表達式適用於瀏覽器,但不適用於Node.js
- 19. 僅適用於數字的正則表達式僅加'h'字符
- 20. 正則表達式適用於Java SimpleDateFormat模式(可能特定於出生)
- 21. 適用於匹配)兩個正則表達式規則(
- 22. 正則表達式並不適用於多個模式occurence
- 23. 正則表達式適用於非連續的大寫單詞
- 24. 爲什麼我的正則表達式不適用於BeautifulSoup?
- 25. 正則表達式適用於JavaScript中的電話號碼
- 26. 適用於Mac的推薦正則表達式編輯器
- 27. 爲什麼我的方法不適用於正則表達式?
- 28. 正則表達式不適用於jsp中的數字java
- 29. 適用於SAX流的正則表達式
- 30. Javascript正則表達式,適用於六位數的base36數字
這聽起來不像是一個明顯的正則表達式用例。任何理由你*有*使用正則表達式來做到這一點? –
我認爲這是最好的方式,但是從Anon。的回答中我認爲現在有更好的辦法。 – Zombies