[英]Python IP address prefix matching
我正在嘗試將以下IP前綴范圍10.[0-255], 192.168, 172.[16-31]
與以下正則表達式匹配:
if not ((re.match("^10\.([01][0-9][0-9]|2[0-4][0-9]|25[0-5])$", event["vpcprefix"]))
or (event["vpcprefix"] == "192.168")
or (re.match("^172\.(1[6-9]|2[0-9]|3[0-1])$", event["vpcprefix"]))):
#throw error, not matched
但是,每次我嘗試對測試用例10.10
運行此命令時,都會引發錯誤。 我不確定為什么,在聲明中找不到任何錯誤。
您有三種模式。 顯然,只有第一個有可能為真,而在那個范圍內|
之間的最接近選項 是[01][0-9][0-9]
。 但這是三位數,而10
是兩位。 考慮[01]?[0-9]?[0-9]
。
怎么樣:
if not ((event["vpcprefix"].split('.')[0] == '10')
or (event["vpcprefix"] == "192.168")
or (event["vpcprefix"].split('.')[0] == '172')):
#do stuff
不要以為這里真的需要正則表達式。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.