目前我正在研究用 PCRE2 撰寫的正則運算式來檢查 IP 地址范圍
^(10\.). |(172\.16). |(192\.168).
我還需要正則運算式來檢查字串中是否可以找到 172.16.XX - 172.31.XX 之間的任何 ip
它正在作業的當前正則運算式,但沒有專門檢查這個范圍......它正在捕獲172.16.XX的所有內容
我試過^(10\.). |(172\.[16-31]). |(192\.168). 了,但它不能以這種方式作業。
另外我正在使用https://regex101.com/來除錯這個運算式......這是檢查它是否正確的好方法嗎?
uj5u.com熱心網友回復:
您可以使用
\b(?:(?:192\.168|172(?:\.(?:1[6-9]|2\d|3[01])))(?:\.\d{1,3}){2}|10(?:\.\d{1,3}){3})\b
\b防止部分單詞匹配的單詞邊界(?:非捕獲組(?:非捕獲組192\.168匹配 192.168|或者172(?:\.(?:1[6-9]|2\d|3[01]))比賽172.,然后 16 到 31
)關閉非捕獲組(?:\.\d{1,3}){2}匹配 2 次.和 1-3 位數字|或者10(?:\.\d{1,3}){3}匹配 10 和 3 次.和 1-3 位數字
)關閉非捕獲組\b一個詞的邊界
正則運算式演示
如果你想讓\d{1,3}數字更具體,那么你也可以使用:
(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/481777.html
標籤:php 正则表达式 IP地址 聚合酶链反应 pcre2
下一篇:如果欄位為空,則不顯示屬性
