最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

正則表達式IP地址合法性判斷實戰(zhàn)記錄

 更新時間:2025年07月21日 08:28:54   作者:保持成長  
在當今數字化時代IP地址作為設備在網絡中的唯一標識符,扮演著至關重要的角色,無論是進行網絡通信、網絡管理還是安全審計,判斷IP地址的有效性都是一項基礎且關鍵的任務,這篇文章主要介紹了正則表達式IP地址合法性判斷的相關資料,需要的朋友可以參考下

一、正則表達式常見匹配字符快速回顧

符號描述
.匹配處換行符\n之外任意1個字符
[]匹配[]中任意一個
\d一個0-9數字
\D匹配非數字
\w匹配單詞字符:a-z、A-Z、0-9
\W匹配非單詞字符
\s匹配空格、tab健
\S匹配非空格,tab健

常用的匹配規(guī)則-匹配字符數量

  • 匹配前一個字符出現(xiàn)0次或者無數次

  • 匹配前一個字符出現(xiàn)1次或者無數次

符號描述
?匹配前一個字符出現(xiàn)0次或者1次
{m}匹配前一個字符出現(xiàn)m次
{m,}匹配前一個字符出現(xiàn)至少m次
{n,m}匹配前一個字符出現(xiàn)n-m次
^匹配字符串開頭
$匹配字符串結尾
|
(ab)將括號中字符作為一個分組

二、 實戰(zhàn):正則表達式判斷IPv4地址合法性

python正則表達式處理re.match()函數,可以對字符進行匹配,查找的位置是從指定的位置開始一直往后找,返回第一個符合規(guī)則的對象,如果開始位置不符合匹配隊形則返回None。而如果從起始位置開始沒有匹配成功,即便其他部分包含需要匹配的內容,re.match()也會返回None。
忘記的同學可以去看上篇文章講解

  • 問題:假設有一個IP地址,如ip = ‘10.10.10.10’,如何檢測IPV4的IP地址格式是否正確?

    分析

    IPV4地址分四段,分別為:(1-255).(0-255).(0-255).(0-255)

    第一段分析,有以下5種情況:

    1-91位數,由于是第一段,因此不能取0,1-9任意取
    10-991開頭兩位數,個位數0-9任意取
    100-1991開頭三位數,十位數和個位數0-9任意取
    200-2492開頭三位數,當十位數為0-4時(即250以內),個位數0-9任意取
    250-2552開頭三位數,當十位數為5時(大于等于250),個位數只能取0-5

    這五種情況對應的正則如下:

    1-9[1-9]
    10-99[1-9]\d
    100-1991\d\d
    200-2492[0-4]\d
    250-25525[0-5]

    組合起來就是:

    [1-9]|[1-9]\d|1\d\d|2[0-4]\d|25[0-5]
    

    加個小括號組合起來:

    ([1-9]|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])
    

    后三段情況均一樣,有以下5中情況:

    0-91位數,0-9任意取,唯一與第一段有區(qū)別的地方
    10-991開頭兩位數,個位數0-9任意取
    100-1991開頭三位數,十位數和個位數0-9任意取
    200-2492開頭三位數,當十位數為0-4時(即250以內),個位數0-9任意取
    250-2552開頭三位數,當十位數為5時(大于等于250),個位數只能取0-5

    這五種情況對應的正則如下:

    0-9\d
    10-99[1-9]\d
    100-1991\d\d
    200-2492[0-4]\d
    250-25525[0-5]

    組合起來就是

    \d|\[1-9]\d|1\d\d|2[0-4]\d|25[0-5]
    

    第四段最后需要加上結尾符號:$。表示終止匹配。

    最終結果:

    import re
    
    ip1 = '100.10.10.253'
    print(re.match(r'([1-9]|[1-9]\d|1\d\d|2[0-4]\d|25[0-5]).(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5]).(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5]).(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])$',ip1))
    
    *******************print*********************************
    <re.Match object; span=(0, 13), match='100.10.10.253'>
    
    ip2 = '0.10.10.253'
    print(re.match(r'([1-9]|[1-9]\d|1\d\d|2[0-4]\d|25[0-5]).(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5]).(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5]).(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])$',ip2))
    
    *******************print*********************************
    None
    

總結 

到此這篇關于正則表達式IP地址合法性判斷的文章就介紹到這了,更多相關正則表達式IP地址合法性判斷內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

最新評論

明星| 宁晋县| 茶陵县| 明水县| 丽江市| 乐昌市| 泗阳县| 宁德市| 东莞市| 德安县| 毕节市| 剑川县| 罗源县| 清徐县| 大新县| 阆中市| 南平市| 中江县| 弋阳县| 嵊泗县| 建始县| 叶城县| 金溪县| 仁化县| 潜山县| 乌兰浩特市| 阿图什市| 龙胜| 自贡市| 甘肃省| 江西省| 文安县| 桂平市| 安康市| 衡阳市| 山丹县| 托克逊县| 昆山市| 亚东县| 延津县| 资兴市|