簡體   English   中英

Python IP地址前綴匹配

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM