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

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

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

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

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

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

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

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

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

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

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

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

    分析

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

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

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

    這五種情況對應(yīng)的正則如下:

    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]
    

    加個(gè)小括號組合起來:

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

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

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

    這五種情況對應(yīng)的正則如下:

    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]
    

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

    最終結(jié)果:

    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
    

總結(jié) 

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

相關(guān)文章

最新評論

剑河县| 清水河县| 固原市| 临武县| 榆中县| 通辽市| 项城市| 北流市| 元阳县| 绥棱县| 灌云县| 巨鹿县| 田林县| 乌兰县| 揭西县| 高碑店市| 克什克腾旗| 准格尔旗| 囊谦县| 忻城县| 沧源| 洞口县| 城步| 漠河县| 永顺县| 永安市| 日照市| 宜春市| 全南县| 启东市| 鲁甸县| 贺兰县| 洛扎县| 武陟县| 新巴尔虎左旗| 昌图县| 河池市| 银川市| 遂昌县| 阳江市| 科技|