欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

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

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

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

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

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

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

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

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

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

  • 問題:假設有一個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ù),個位數(shù)0-9任意取
    100-1991開頭三位數(shù),十位數(shù)和個位數(shù)0-9任意取
    200-2492開頭三位數(shù),當十位數(shù)為0-4時(即250以內(nèi)),個位數(shù)0-9任意取
    250-2552開頭三位數(shù),當十位數(shù)為5時(大于等于250),個位數(shù)只能取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位數(shù),0-9任意取,唯一與第一段有區(qū)別的地方
    10-991開頭兩位數(shù),個位數(shù)0-9任意取
    100-1991開頭三位數(shù),十位數(shù)和個位數(shù)0-9任意取
    200-2492開頭三位數(shù),當十位數(shù)為0-4時(即250以內(nèi)),個位數(shù)0-9任意取
    250-2552開頭三位數(shù),當十位數(shù)為5時(大于等于250),個位數(shù)只能取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]
    

    第四段最后需要加上結(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é) 

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

相關文章

  • 無殤 javascript正則練習器

    無殤 javascript正則練習器

    無殤寫的javascript正則練習器,比較不錯,最后生成替換參數(shù),美中不足的就是替換無法使用,本人也試著修改因為替換參數(shù)過多而無法實現(xiàn),希望會的朋友修正一下
    2007-06-06
  • js通過正則匹配沒有內(nèi)容的空標簽

    js通過正則匹配沒有內(nèi)容的空標簽

    這篇文章主要介紹了js通過正則匹配沒有內(nèi)容的空標簽,需要的朋友可以參考下
    2020-02-02
  • 取字和字符的長度

    取字和字符的長度

    取字和字符的長度...
    2006-07-07
  • 淺析正則表達式

    淺析正則表達式

    所謂的正則表達式,就是用一類元字符(不表示本身意義,而表示統(tǒng)配或其他意義),組合其他字符所編數(shù)出來的,能夠匹配符合條件的字符
    2013-09-09
  • linux下如何配置SQLSERVER ODBC

    linux下如何配置SQLSERVER ODBC

    這篇文章主要介紹了linux下如何配置SQLSERVER ODBC的相關資料,需要的朋友可以參考下
    2015-09-09
  • Android中手機號、車牌號正則表達式大全

    Android中手機號、車牌號正則表達式大全

    這篇文章主要介紹了Android中手機號、車牌號正則表達式的相關資料,需要的朋友可以參考下
    2015-09-09
  • 最新版網(wǎng)址替換正則表達式

    最新版網(wǎng)址替換正則表達式

    這篇文章主要介紹了最新版網(wǎng)址替換正則表達式,本文給出了最新網(wǎng)址正則表達式和示例替換文本,需要的朋友可以參考下
    2015-04-04
  • 深入淺析正則表達式 捕獲組

    深入淺析正則表達式 捕獲組

    捕獲組(capturing group)是正則表達式里比較常用,也是比較重要的概念,我個人覺得掌握這部分的知識是非常重要的,感興趣的朋友跟隨小編一起看看吧
    2019-04-04
  • 正則表達式匹配用戶密碼

    正則表達式匹配用戶密碼

    這篇文章主要介紹了正則表達式匹配用戶密碼 的相關資料,需要的朋友可以參考下
    2016-03-03
  • 正則表達式之回溯

    正則表達式之回溯

    我通常在匹配一個字符串或是一組數(shù)字的時候會用到正則表達式,但很少會了解它是如何真正開始工作的?它的工作原理是什么?其實正則表達式里面的貓膩還挺多水也挺深的,有時候還不太好理解。
    2010-04-04

最新評論