最近在學習正規表示式的時候發現乙個很好的入門網頁:
在介紹分組的時候,舉了乙個ip位址匹配的例子:
((2[0-4]/d|25[0-5]|[01]?/d/d?)/.)(2[0-4]/d|25[0-5]|[01]?/d/d?)
這個表示式的/d/d?)處應該修改為/d?/d分析如下:
1)ip位址的長度為32位,分為4段,每段8位,用十進位制數字表示,每段數字範圍為0~255,段與段之間用英文句點「.」隔開。以255.226.168.1為例,可以分析出ip位址的組成特點,250——255、200——249、0——199 2)
250——255,用正則可以寫成:25[0-5];
200——249可以這樣寫:2[0-4]/d;
0——199有些麻煩,不過可以繼續分拆,這樣寫起來更加簡單明瞭,0——9、10——99、100——199,這樣分開考慮,就得到了三個式子:/d、/d/d(有冗餘)、1/d/d,這三個式子我們可以像合併同類項一樣把它們合併到一起:[01]?/d?/d
這樣,一段位址的表示式就是:2[0-4]/d|25[0-5]|[01]?/d?/d
後三段每段數字之前都有乙個「.」號,合併起來考慮,前三段數字可以寫到一起,第四段單獨寫,合併得到ip位址匹配的正規表示式:
((2[0-4]/d|25[0-5]|[01]?/d?/d)/.)(2[0-4]/d|25[0-5]|[01]?/d?/d)
IPv4位址正規表示式
ipv4的ip位址都是 1 255 0 255 0 255 0 255 的格式 下面給出相對應的正規表示式 1 d 2 0 4 d 25 0 5 1 9 d 1 9 1 d 2 0 4 d 25 0 5 1 9 d d 1 d 2 0 4 d 25 0 5 1 9 d d 1 d 2 0 4 d 2...
c 正規表示式 ipv4位址
1 9 d 1 d d 2 0 4 d 25 0 5 1 9 d 1 d d 2 0 4 d 25 0 5 0 9 等價 d 字串裡有 0到9之間的數字字元即可匹配 如a1a 0 9 匹配字首為以上條件的字串 如 1aa 0 9 字串裡有除了0 9 以外的字元 即可匹配 如 a 0 9 匹配字尾為0...
檢查IPv4和IPv6位址的正規表示式
原文 今天看了點正規表示式 regular expression 的語法,學了下ipv4和ipv6位址的檢查方法。25 0 5 2 0 4 d 0 1 d d?25 0 5 2 0 4 d 0 1 d d?s 0 9a fa f 0 9a fa f 0 9a fa f 25 0 5 2 0 4 d ...