1. 程式人生 > >正則表達式與擴展正則表達式區別

正則表達式與擴展正則表達式區別

grep 裏的 正則表達 則表達式 命令結果 col 地址空間 1.0 onf

最近在學習正則表達式時,遇到了一些問題,究其原因是正則表達式與擴展正則表達式的區別沒有弄清楚
    正則表達式與擴展正則表達式類似,只是擴展正則表達式表達更加簡單

    正則表達式需要打 \ 轉義字符 來表示某些字符的意思,而擴展正則表達式則不需要:
                \{m}   正則表達式表示至少表示前面的字符m次   {m} egrep一樣
                \?     正則表達式表示前面的字符0或1次       ?   egrep一樣
                \+     正則表達式表示前面的字符至少一次      +  egrep一樣
                \(\)   正則表達式表示分組                  ()  egrep一樣
                \|           正則表達式表示或                                        |   egrep一樣

其中一個問題就是IP地址不知道該如何來表示

        IP地址是一個32位的二進制數,通常被分割為4個“8位二進制數”(也就是4個字節)。
        IP地址通常用“點分十進制”表示成(a.b.c.d)的形式,其中,a,b,c,d都是0~255之間的十進制整數。
        例:點分十進IP地址(100.4.5.6),實際上是32位二進制數(01100100.00000100.00000101.00000110)。
        IP地址(英語:Internet Protocol Address)是一種在Internet上的給主機編址的方式,也稱為網絡協議地址。
        常見的IP地址,分為IPv4與IPv6兩大類。
        IP地址編址方案:IP地址編址方案將IP地址空間劃分為A、B、C、D、E五類,
        其中A、B、C是基本類,D、E類作為多播和保留使用。
        IPV4就是有4段數字,每一段最大不超過255。由於互聯網的蓬勃發展,IP位址的需求量愈來愈大,
        地址空間的不足必將妨礙互聯網的進一步發展。為了擴大地址空間,擬通過IPv6重新定義地址空間。
        IPv6采用128位地址長度。在IPv6的設計過程中除了一勞永逸地解決了地址短缺問題以外,
        還考慮了在IPv4中解決不好的其它問題。

擴展正則表達式表示:

        "\<(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])"
        解釋:用第一個括號裏的數字表示           (個位數|十位數|以一開頭的三位數|200-049|250-255)
                   用第二個括號表示                           ((數字).引用)
                   後面的打括號表示引用次數 為3      x(xx).x(xx).x(xx).
                   最後一個括號表示                           x(xx)
                   總的命令結果表示                           x(xx).x(xx).x(xx).x(xx)

                     註:四個xxx的範圍已經限定

實例:

        ifconfig | "\<(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])"
        inet 172.18.250.78  netmask 255.255.0.0  broadcast 172.18.255.255
        inet 192.168.6.131  netmask 255.255.255.0  broadcast 192.168.6.255
        inet 127.0.0.1  netmask 255.0.0.0
        inet 192.168.122.1  netmask 255.255.255.0  broadcast 192.168.122.255

正則表達式與擴展正則表達式區別