成人性生交大片免费看视频r_亚洲综合极品香蕉久久网_在线视频免费观看一区_亚洲精品亚洲人成人网在线播放_国产精品毛片av_久久久久国产精品www_亚洲国产一区二区三区在线播_日韩一区二区三区四区区区_亚洲精品国产无套在线观_国产免费www

主頁 > 知識庫 > IPV4和IPV6正則表達式的深入講解

IPV4和IPV6正則表達式的深入講解

熱門標簽:百度地圖標注飯店位置怎么 百度地圖標注名編輯 襄陽房產(chǎn)電銷機器人招商 個性化地圖標注在線 施工地圖標注怎么做 怎么在高德地圖標注行走軌跡 清遠陽山400電話號碼如何申請 深圳400電話辦理那家好 安徽移動外呼系統(tǒng)

IPV4正則表達式

Ipv4地址分為ABCDE五大類,其中ABC類是普通ip地址,D類是組播地址,E類保留,作為研究之用。

范圍分別為:

A: 1.0.0.1 ―一126.155.255.255

內(nèi)網(wǎng)地址范圍:10.0.0.0 一一10-255.255.255

B: 127.0.0.1 —191.255.255.255

內(nèi)網(wǎng)地址范圍:172.16.0.0——172.31.255.255

C: 192.0.0.1 —223.255.255.255

內(nèi)網(wǎng)地址范圍:192.168.0.0—一192.168.255.255

D: 224.0.0.1 —239.255.255.255

E: 240.0.0.1 —255.255.255.255

我們的正則要求ip必須是ABC類地址。每個字節(jié)的第一個數(shù)字可以為0,比如說01, 001。

1.       ip的第一個字節(jié)分作以下幾種情況:

1.長度為3且以2開頭,范圍為200-223

正則:22[0-3]丨2[0-1][0-9]

2.長度為3且以0或1開頭

正則:[0-1][0-9][0-9]

3.長度為1或2

正則:([0-9])]{1,2}

所以第一個字節(jié)的表達式為:

(22[0-3]丨2[0-1][0-9]|

[0-1][0-9][0-9]|

0[1 -9][0-9]|

([0-9])]{1,2})

2.    后面三個字節(jié)范圍為0-255,前面有一個點

分為以下幾種情況:

1.    以2開頭

正則:25[0-5]|2[0-4][0-9]

2.    以1和0開頭的情況和第一個字節(jié)相同。

所以,單個字節(jié)的正則表達式:

([.]

(25[0-5]|2[0-4][0-9]|

[0-1][0-9][0-9]|

0[1 -9][0-9]|

([0-9])]{1,2}))

3.    加上點號和重復(fù)三次,以及開始和結(jié)尾匹配符,IPV4最終正則表達式變?yōu)椋?/strong>

((22[0-3]丨2[0-1][0-9]|[0-1][0-9][0-9]|0[1 -9][0-9]|([0-9])]{1,2})([.](25[0-5]|2[0-4][0-9]|[0-1][0-9][0-9]|0[1 -9][0-9]|([0-9])]{1,2})){3})

點號之所以用中括號括起來是因為如果不擴起來是匹配任意字符。也可以用兩個反斜桿轉(zhuǎn)義。

加上行首和行尾匹配符:

(^((22[0-3]丨2[0-1][0-9]|[0-1][0-9][0-9]|0[1 -9][0-9]|([0-9])]{1,2})([.](25[0-5]|2[0-4][0-9]|[0-1][0-9][0-9]|0[1 -9][0-9]|([0-9])]{1,2})){3})$)

IPV6正則表達式

IPV6介紹

IPV6的長度是128位,相比于ipv4的32位,極大的擴展了ip地址可用空間。ipv4地址現(xiàn)在被視為一種稀缺資源,而ipv6地址相當(dāng)充足,在可以預(yù)見的未來是用不完的。有這樣一段描述:如果地球表面(含陸地和水面)都覆蓋著計算機,那么IPv6允許每平方米擁有7*10A23個IP地址;如果地址分配的速率是每微秒100萬個,那么需要10A19年才能將所有的地址分配完畢。

IPv6地址表示

IPv6的128位地址通常寫成8組,每組為四個十六進制數(shù)的形式。比如:

AD80:0000:0000:0000:ABAA:0000:00C2:0002

是一個合法的IPv6地址。這個地址比較長,看起來不方便也不易于書寫。零壓縮法可以用來縮減其長度。如果幾個連續(xù)段位的值都是0,那么這些0就可以簡單的以::來表示,上述地址就可寫成:

AD80::ABAA:0000:00C2:0002

這個簡化只能用一次,在上例中的ABAA后面的0000就不能再次簡化。當(dāng)然也可以在ABAA后面使用::,這樣的話前面的12個0就不能壓縮了。這個限制的目的是為了能準確還原被壓縮的0,不然就無法確定每個::代表了多少個0。例如,下面是一些合法的IPv6地址:

CDCD:910A:2222:5498:8475:1111:3900:2020

1030::C9B4:FF12:48AA:1A2B

2000:0:0:0:0:0:0:1::

0:0:0:0:0:0:12000:0:0:0:0::

同時每個段前面的零可以省略,因此

2001:0DB8:02de::0e13 等價于

2001:DB8:2de::e13

一個IPv6地址可以將一全IPv4地址內(nèi)嵌進去,寫成IPv6形式和平常習(xí)慣的IPv4形式的混合體。

IPv6有兩種內(nèi)嵌IPv4的方式:IPv4映像地址和IPv4兼容地址(已經(jīng)被舍棄)。

IPv4映像地址

0000:0000:0000:0000:0000:ffff:192.168.89.9這種混合寫法對應(yīng)的ipv6地址:

0000:0000:0000:0000:0000:ffff:c0a8:5909

其實表示的是192.168.89.9這個ipv4地址。IPv4映像地址布局如下:

0000…..0000(80bits)| FFFF | IPv4 address |

IPv4兼容地址

兼容地址和映像地址的區(qū)別就是第81-96位為0。

IPv4兼容地址布局如下:

0000…..0000(80bits) | 0000 | IPv4 address |

格式分為以下幾種情況:

1.    前面7個完整的字段,第8個字段為零壓縮寫法或者數(shù)字。如:

1:2:3:4:5:6:7:8

1:2:3:4:5:6:7::

對應(yīng)的正則表達式為:

(([0-9A-Fa-f]{1,4}:){7}([0-9A-Fa-f]{1,4}{1}|:))

最外面加一層括號是為了保證與其他正則表達式拼接到一起時保證不產(chǎn)生混亂。

2.    前面6個完整的字段,后面2個字段可能為零壓縮寫法或者ipv4地址嵌入式寫法。如:

1:2:3:4:5:6::8

1:2:3:4:5:6::

1:2:3:4:5:6:192.168.1.1

對應(yīng)的正則表達式為:

(([0-9A-Fa-f]{1,4}:){6}(:[0-9A-Fa-f]{1,4}{1}|((22[0-3]丨2[0-1][0-9]|[0-1][0-9][0-9]|0[1 -9][0-9]|([0-9])]{1,2})([.](25[0-5]|2[0-4][0-9]|[0-1][0-9][0-9]|0[1 -9][0-9]|([0-9])]{1,2})){3})|:))

3.    前面5個完整的字段,后面3個字段可能為零壓縮寫法或者ipv4地址嵌入式寫法。如:

1:2:3:4:5::

1:2:3:4:5::6

1:2:3:4:5::8

1:2:3:4:5::192.168.1.1

對應(yīng)的正則表達式為:

(([0-9A-Fa-f]{1,4}:){5}(:[0-9A-Fa-f]{1,4}{1,2}|:((22[0-3]丨2[0-1][0-9]|[0-1][0-9][0-9]|0[1 -9][0-9]|([0-9])]{1,2})([.](25[0-5]|2[0-4][0-9]|[0-1][0-9][0-9]|0[1 -9][0-9]|([0-9])]{1,2})){3})|:))

4.    前面4個完整的字段,后面4個字段可能為零壓縮寫法或者ipv4地址嵌入式寫法。如:

1:2:3:4::

1:2:3:4::5

1:2:3:4::8

1:2:3:4::192.168.1.1

對應(yīng)的正則表達式為:

(([0-9A-Fa-f]{1,4}:){4}(:[0-9A-Fa-f]{1,4}{1,3}|:((22[0-3]丨2[0-1][0-9]|[0-1][0-9][0-9]|0[1 -9][0-9]|([0-9])]{1,2})([.](25[0-5]|2[0-4][0-9]|[0-1][0-9][0-9]|0[1 -9][0-9]|([0-9])]{1,2})){3})|:))

前面3,2,1個完整字段的情況略。

8.    第一個字段即開始簡略寫法

::8

::192.168.1.1

對應(yīng)的正則表達式為:

(:(:[0-9A-Fa-f]{1,4}{1,7}|:((22[0-3]丨2[0-1][0-9]|[0-1][0-9][0-9]|0[1 -9][0-9]|([0-9])]{1,2})([.](25[0-5]|2[0-4][0-9]|[0-1][0-9][0-9]|0[1 -9][0-9]|([0-9])]{1,2})){3})|:))

所以IPV6的正則表達式為:

(([0-9A-Fa-f]{1,4}:){7}([0-9A-Fa-f]{1,4}{1}|:))|

(([0-9A-Fa-f]{1,4}:){6}(:[0-9A-Fa-f]{1,4}{1}|((22[0-3]丨2[0-1][0-9]|[0-1][0-9][0-9]|0[1 -9][0-9]|([0-9])]{1,2})([.](25[0-5]|2[0-4][0-9]|[0-1][0-9][0-9]|0[1 -9][0-9]|([0-9])]{1,2})){3})|:))|

(([0-9A-Fa-f]{1,4}:){5}(:[0-9A-Fa-f]{1,4}{1,2}|:((22[0-3]丨2[0-1][0-9]|[0-1][0-9][0-9]|0[1 -9][0-9]|([0-9])]{1,2})([.](25[0-5]|2[0-4][0-9]|[0-1][0-9][0-9]|0[1 -9][0-9]|([0-9])]{1,2})){3})|:))|

(([0-9A-Fa-f]{1,4}:){4}(:[0-9A-Fa-f]{1,4}{1,3}|:((22[0-3]丨2[0-1][0-9]|[0-1][0-9][0-9]|0[1 -9][0-9]|([0-9])]{1,2})([.](25[0-5]|2[0-4][0-9]|[0-1][0-9][0-9]|0[1 -9][0-9]|([0-9])]{1,2})){3})|:))|

(([0-9A-Fa-f]{1,4}:){3}(:[0-9A-Fa-f]{1,4}{1,4}|:((22[0-3]丨2[0-1][0-9]|[0-1][0-9][0-9]|0[1 -9][0-9]|([0-9])]{1,2})([.](25[0-5]|2[0-4][0-9]|[0-1][0-9][0-9]|0[1 -9][0-9]|([0-9])]{1,2})){3})|:))|

(([0-9A-Fa-f]{1,4}:){2}(:[0-9A-Fa-f]{1,4}{1,5}|:((22[0-3]丨2[0-1][0-9]|[0-1][0-9][0-9]|0[1 -9][0-9]|([0-9])]{1,2})([.](25[0-5]|2[0-4][0-9]|[0-1][0-9][0-9]|0[1 -9][0-9]|([0-9])]{1,2})){3})|:))|

(([0-9A-Fa-f]{1,4}:){1}(:[0-9A-Fa-f]{1,4}{1,6}|:((22[0-3]丨2[0-1][0-9]|[0-1][0-9][0-9]|0[1 -9][0-9]|([0-9])]{1,2})([.](25[0-5]|2[0-4][0-9]|[0-1][0-9][0-9]|0[1 -9][0-9]|([0-9])]{1,2})){3})|:))|

(:(:[0-9A-Fa-f]{1,4}{1,7}|:((22[0-3]丨2[0-1][0-9]|[0-1][0-9][0-9]|0[1 -9][0-9]|([0-9])]{1,2})([.](25[0-5]|2[0-4][0-9]|[0-1][0-9][0-9]|0[1 -9][0-9]|([0-9])]{1,2})){3})|:))

上面為了表達邏輯的清晰,用了換行符,刪除換行符,便得到IPV6的最終正則表達式:

(([0-9A-Fa-f]{1,4}:){7}([0-9A-Fa-f]{1,4}{1}|:))|(([0-9A-Fa-f]{1,4}:){6}(:[0-9A-Fa-f]{1,4}{1}|((22[0-3]丨2[0-1][0-9]|[0-1][0-9][0-9]|0[1 -9][0-9]|([0-9])]{1,2})([.](25[0-5]|2[0-4][0-9]|[0-1][0-9][0-9]|0[1 -9][0-9]|([0-9])]{1,2})){3})|:))|(([0-9A-Fa-f]{1,4}:){5}(:[0-9A-Fa-f]{1,4}{1,2}|:((22[0-3]丨2[0-1][0-9]|[0-1][0-9][0-9]|0[1 -9][0-9]|([0-9])]{1,2})([.](25[0-5]|2[0-4][0-9]|[0-1][0-9][0-9]|0[1 -9][0-9]|([0-9])]{1,2})){3})|:))|(([0-9A-Fa-f]{1,4}:){4}(:[0-9A-Fa-f]{1,4}{1,3}|:((22[0-3]丨2[0-1][0-9]|[0-1][0-9][0-9]|0[1 -9][0-9]|([0-9])]{1,2})([.](25[0-5]|2[0-4][0-9]|[0-1][0-9][0-9]|0[1 -9][0-9]|([0-9])]{1,2})){3})|:))|(([0-9A-Fa-f]{1,4}:){3}(:[0-9A-Fa-f]{1,4}{1,4}|:((22[0-3]丨2[0-1][0-9]|[0-1][0-9][0-9]|0[1 -9][0-9]|([0-9])]{1,2})([.](25[0-5]|2[0-4][0-9]|[0-1][0-9][0-9]|0[1 -9][0-9]|([0-9])]{1,2})){3})|:))|(([0-9A-Fa-f]{1,4}:){2}(:[0-9A-Fa-f]{1,4}{1,5}|:((22[0-3]丨2[0-1][0-9]|[0-1][0-9][0-9]|0[1 -9][0-9]|([0-9])]{1,2})([.](25[0-5]|2[0-4][0-9]|[0-1][0-9][0-9]|0[1 -9][0-9]|([0-9])]{1,2})){3})|:))|(([0-9A-Fa-f]{1,4}:){1}(:[0-9A-Fa-f]{1,4}{1,6}|:((22[0-3]丨2[0-1][0-9]|[0-1][0-9][0-9]|0[1 -9][0-9]|([0-9])]{1,2})([.](25[0-5]|2[0-4][0-9]|[0-1][0-9][0-9]|0[1 -9][0-9]|([0-9])]{1,2})){3})|:))|(:(:[0-9A-Fa-f]{1,4}{1,7}|:((22[0-3]丨2[0-1][0-9]|[0-1][0-9][0-9]|0[1 -9][0-9]|([0-9])]{1,2})([.](25[0-5]|2[0-4][0-9]|[0-1][0-9][0-9]|0[1 -9][0-9]|([0-9])]{1,2})){3})|:))

加上行首和行尾匹配符:

(^(([0-9A-Fa-f]{1,4}:){7}([0-9A-Fa-f]{1,4}{1}|:))|(([0-9A-Fa-f]{1,4}:){6}(:[0-9A-Fa-f]{1,4}{1}|((22[0-3]丨2[0-1][0-9]|[0-1][0-9][0-9]|0[1 -9][0-9]|([0-9])]{1,2})([.](25[0-5]|2[0-4][0-9]|[0-1][0-9][0-9]|0[1 -9][0-9]|([0-9])]{1,2})){3})|:))|(([0-9A-Fa-f]{1,4}:){5}(:[0-9A-Fa-f]{1,4}{1,2}|:((22[0-3]丨2[0-1][0-9]|[0-1][0-9][0-9]|0[1 -9][0-9]|([0-9])]{1,2})([.](25[0-5]|2[0-4][0-9]|[0-1][0-9][0-9]|0[1 -9][0-9]|([0-9])]{1,2})){3})|:))|(([0-9A-Fa-f]{1,4}:){4}(:[0-9A-Fa-f]{1,4}{1,3}|:((22[0-3]丨2[0-1][0-9]|[0-1][0-9][0-9]|0[1 -9][0-9]|([0-9])]{1,2})([.](25[0-5]|2[0-4][0-9]|[0-1][0-9][0-9]|0[1 -9][0-9]|([0-9])]{1,2})){3})|:))|(([0-9A-Fa-f]{1,4}:){3}(:[0-9A-Fa-f]{1,4}{1,4}|:((22[0-3]丨2[0-1][0-9]|[0-1][0-9][0-9]|0[1 -9][0-9]|([0-9])]{1,2})([.](25[0-5]|2[0-4][0-9]|[0-1][0-9][0-9]|0[1 -9][0-9]|([0-9])]{1,2})){3})|:))|(([0-9A-Fa-f]{1,4}:){2}(:[0-9A-Fa-f]{1,4}{1,5}|:((22[0-3]丨2[0-1][0-9]|[0-1][0-9][0-9]|0[1 -9][0-9]|([0-9])]{1,2})([.](25[0-5]|2[0-4][0-9]|[0-1][0-9][0-9]|0[1 -9][0-9]|([0-9])]{1,2})){3})|:))|(([0-9A-Fa-f]{1,4}:){1}(:[0-9A-Fa-f]{1,4}{1,6}|:((22[0-3]丨2[0-1][0-9]|[0-1][0-9][0-9]|0[1 -9][0-9]|([0-9])]{1,2})([.](25[0-5]|2[0-4][0-9]|[0-1][0-9][0-9]|0[1 -9][0-9]|([0-9])]{1,2})){3})|:))|(:(:[0-9A-Fa-f]{1,4}{1,7}|:((22[0-3]丨2[0-1][0-9]|[0-1][0-9][0-9]|0[1 -9][0-9]|([0-9])]{1,2})([.](25[0-5]|2[0-4][0-9]|[0-1][0-9][0-9]|0[1 -9][0-9]|([0-9])]{1,2})){3})|:))$)

上面的表達式還有考慮的不完善的地方:兼容地址和映射地址的前80bit一定是0,所以上面的范圍其實寫的更寬了,而且使表達式變復(fù)雜了。但是發(fā)現(xiàn)這個問題的時候,已經(jīng)沒有優(yōu)化的需求了,所以就先這樣,有需要的自行進行優(yōu)化。

HTTPS

正則:

((http|https|HTTP|HTTPS)://.{1,245})

加上行首和行尾匹配符:

(^((http|https|HTTP|HTTPS)://.{1,245})$)

域名

對應(yīng)的規(guī)則:

1.       非最后一段

a.    字符范圍為:a-zA-Z0-9以及短劃線-

b.    開始和結(jié)束字符不能為-

c.     長度不超過63

2.       最后一段

a.       字符范圍為a-zA-Z

b.       長度為2-6

3.    不能只有最后一段

正則:

(([a-zA-Z0-9](([a-zA-Z0-9]|[-]){0-61}[a-zA-Z0-9])?[.])+[a-zA-Z0-9]{2,6}

加上行首和行尾匹配符:

(^(([a-zA-Z0-9](([a-zA-Z0-9]|[-]){0-61}[a-zA-Z0-9])?[.])+[a-zA-Z0-9]{2,6}$)

空字符串

(^$)

附IPv4及IPv6正則測試用例——java:

import org.junit.Test;

public class IPv6Test {
 public static final String ipv4Regex = "(^((22[0-3]丨2[0-1][0-9]|[0-1][0-9][0-9]|0[1 -9][0-9]|([0-9])]{1,2})([.](25[0-5]|2[0-4][0-9]|[0-1][0-9][0-9]|0[1 -9][0-9]|([0-9])]{1,2})){3})$)";
 public static final String ipv6Regex = "(^(([0-9A-Fa-f]{1,4}:){7}([0-9A-Fa-f]{1,4}{1}|:))|(([0-9A-Fa-f]{1,4}:){6}(:[0-9A-Fa-f]{1,4}{1}|((22[0-3]丨2[0-1][0-9]|[0-1][0-9][0-9]|0[1 -9][0-9]|([0-9])]{1,2})([.](25[0-5]|2[0-4][0-9]|[0-1][0-9][0-9]|0[1 -9][0-9]|([0-9])]{1,2})){3})|:))|(([0-9A-Fa-f]{1,4}:){5}(:[0-9A-Fa-f]{1,4}{1,2}|:((22[0-3]丨2[0-1][0-9]|[0-1][0-9][0-9]|0[1 -9][0-9]|([0-9])]{1,2})([.](25[0-5]|2[0-4][0-9]|[0-1][0-9][0-9]|0[1 -9][0-9]|([0-9])]{1,2})){3})|:))|(([0-9A-Fa-f]{1,4}:){4}(:[0-9A-Fa-f]{1,4}{1,3}|:((22[0-3]丨2[0-1][0-9]|[0-1][0-9][0-9]|0[1 -9][0-9]|([0-9])]{1,2})([.](25[0-5]|2[0-4][0-9]|[0-1][0-9][0-9]|0[1 -9][0-9]|([0-9])]{1,2})){3})|:))|(([0-9A-Fa-f]{1,4}:){3}(:[0-9A-Fa-f]{1,4}{1,4}|:((22[0-3]丨2[0-1][0-9]|[0-1][0-9][0-9]|0[1 -9][0-9]|([0-9])]{1,2})([.](25[0-5]|2[0-4][0-9]|[0-1][0-9][0-9]|0[1 -9][0-9]|([0-9])]{1,2})){3})|:))|(([0-9A-Fa-f]{1,4}:){2}(:[0-9A-Fa-f]{1,4}{1,5}|:((22[0-3]丨2[0-1][0-9]|[0-1][0-9][0-9]|0[1 -9][0-9]|([0-9])]{1,2})([.](25[0-5]|2[0-4][0-9]|[0-1][0-9][0-9]|0[1 -9][0-9]|([0-9])]{1,2})){3})|:))|(([0-9A-Fa-f]{1,4}:){1}(:[0-9A-Fa-f]{1,4}{1,6}|:((22[0-3]丨2[0-1][0-9]|[0-1][0-9][0-9]|0[1 -9][0-9]|([0-9])]{1,2})([.](25[0-5]|2[0-4][0-9]|[0-1][0-9][0-9]|0[1 -9][0-9]|([0-9])]{1,2})){3})|:))|(:(:[0-9A-Fa-f]{1,4}{1,7}|:((22[0-3]丨2[0-1][0-9]|[0-1][0-9][0-9]|0[1 -9][0-9]|([0-9])]{1,2})([.](25[0-5]|2[0-4][0-9]|[0-1][0-9][0-9]|0[1 -9][0-9]|([0-9])]{1,2})){3})|:))$)";
 public static final String httpRegex = "(^((http|https|HTTP|HTTPS)://.{1,245})$)";
 public static final String domainRegex = "(^(([a-zA-Z0-9](([a-zA-Z0-9]|[-]){0-61}[a-zA-Z0-9])?[.])+[a-zA-Z0-9]{2,6}$)";
 public static final String emptyRegex = "(^$)";

 public static final String finalRegex = ipv4Regex + "|" + ipv6Regex + "|" + httpRegex + "|" + domainRegex + "|" + emptyRegex;

 public static void main(String args[]) {
  try {

  } catch (Exception e) {
   e.printStackTrace(System.out);
  }

 }

 // 第一個字段長度為3的測試用例
 @Test
 public void testIpv4_1() {
  assert ("200.255.255.255".matches(finalRegex));
  assert ("223.255.255.255".matches(finalRegex));
  assert ("224.255.255.255".matches(finalRegex));

  assert ("192.0.0.1".matches(finalRegex));
  assert ("127.0.0.1".matches(finalRegex));
  assert ("100.0.0.1".matches(finalRegex));
  assert ("090.0.0.1".matches(finalRegex));
  assert ("009.0.0.1".matches(finalRegex));

 }

 // 第一個字段長度為1或2的測試用例
 @Test
 public void testIpv4_2() {
  assert ("09.255.255.255".matches(finalRegex));
  assert ("90.255.255.255".matches(finalRegex));
  assert ("00.255.255.255".matches(finalRegex));

  assert (!"-.0.0.1".matches(finalRegex));
  assert ("0.0.0.1".matches(finalRegex));
  assert ("1.0.0.1".matches(finalRegex));
 }

 // 測試后面三個字節(jié)
 @Test
 public void testIpv4_3() {
  assert ("200.0.255.255".matches(finalRegex));
  assert ("200.01.255.255".matches(finalRegex));
  assert ("200.10.255.255".matches(finalRegex));
  assert (!"200.256.255.255".matches(finalRegex));
  assert ("200.001.255.255".matches(finalRegex));

  assert ("200.255.0.255".matches(finalRegex));
  assert ("200.255.01.255".matches(finalRegex));
  assert ("200.255.10.255".matches(finalRegex));
  assert (!"200.255.256.255".matches(finalRegex));
  assert ("200.255.001.255".matches(finalRegex));

  assert ("200.255.255.0".matches(finalRegex));
  assert ("200.255.255.01".matches(finalRegex));
  assert ("200.255.255.10".matches(finalRegex));
  assert (!"200.255.255.256".matches(finalRegex));
  assert ("200.255.255.001".matches(finalRegex));

 }

 // 測試異常
 @Test
 public void testIpv4_4() {
  assert (!"200".matches(finalRegex));
  assert (!"200.1".matches(finalRegex));
  assert (!"200.1".matches(finalRegex));
  assert (!"200.1.1".matches(finalRegex));
  assert (!"200.1.1.1.1".matches(finalRegex));
 }

 @Test
 public void testIpv6_1() {
  assert ("1:2:3:4:5:6:7::".matches(finalRegex));
  assert ("1:2:3:4:5:6:7:8".matches(finalRegex));

  assert ("1:2:3:4:5:6::".matches(finalRegex));
  assert ("1:2:3:4:5:6::8".matches(finalRegex));

  assert ("1:2:3:4:5::".matches(finalRegex));
  assert ("1:2:3:4:5::8".matches(finalRegex));

  assert ("1:2:3:4::".matches(finalRegex));
  assert ("1:2:3:4::8".matches(finalRegex));

  assert ("1:2:3::".matches(finalRegex));
  assert ("1:2:3::8".matches(finalRegex));

  assert ("1:2::".matches(finalRegex));
  assert ("1:2::8".matches(finalRegex));

  assert ("1::".matches(finalRegex));
  assert ("1::8".matches(finalRegex));

  assert ("::".matches(finalRegex));
  assert ("::8".matches(finalRegex));
  assert ("::7:8".matches(finalRegex));
  assert ("::6:7:8".matches(finalRegex));
  assert ("::5:6:7:8".matches(finalRegex));
  assert ("::4:5:6:7:8".matches(finalRegex));
  assert ("::3:4:5:6:7:8".matches(finalRegex));
  assert ("::2:3:4:5:6:7:8".matches(finalRegex));

  assert ("::192.168.1.1".matches(finalRegex));

 }

 @Test
 public void testIpv6_2() {
  assert ("A:0f:0F:FFFF:5:6:7:8".matches(finalRegex));
  assert (!"A:0f:0F:FFFF1:5:6:7:8".matches(finalRegex));
  assert (!"G:0f:0F:FFFF:5:6:7:8".matches(finalRegex));
 }

 @Test
 public void testHttp() {
  assert ("https://a.com".matches(finalRegex));
  assert ("https://a.b.c.com".matches(finalRegex));
  assert ("https://a".matches(finalRegex));
  assert ("https://a.comdddd".matches(finalRegex));
  assert (!"https://afadfadfadfadfadfadfadfadfadfffffffffffffffffffffffffffffffffffffffffffffffdfadfadfadfadfadfadfadfaafadfadfadfadfadfadfadfadfadfffffffffffffffffffffffffffffffffffffffffffffffdfadfadfadfadfadfadfadfaafadfadfadfadfadfadfadfadfadfffffffffffffffffffffffffffffffffffffffffffffffdfadfadfadfadfadfadfadfa.comdddd"
    .matches(finalRegex));
 }

 @Test
 public void testDomain() {
  assert ("a.com".matches(finalRegex));
  assert ("a.bdfad-dfadf.c.com".matches(finalRegex));
  assert (!"a.-bdfad-dfadf.c.com".matches(finalRegex));
  assert ("abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWSYZabcdefghijk.com".matches(finalRegex));
  assert (!"abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWSYZabcdefghijk1.com".matches(finalRegex));
 }

 @Test
 public void testEmpty() {
  assert ("".matches(finalRegex));
  assert (!"1".matches(finalRegex));

 }
}

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

您可能感興趣的文章:
  • 分析概述IPv6與IPv4的應(yīng)用與區(qū)別

標簽:駐馬店 欽州 黑河 臨夏 延邊 南昌 中衛(wèi) 阜陽

巨人網(wǎng)絡(luò)通訊聲明:本文標題《IPV4和IPV6正則表達式的深入講解》,本文關(guān)鍵詞  IPV4,和,IPV6,正則,表達式,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《IPV4和IPV6正則表達式的深入講解》相關(guān)的同類信息!
  • 本頁收集關(guān)于IPV4和IPV6正則表達式的深入講解的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    国产在线资源一区| av成人在线播放| 久久99国产精品尤物| 日日夜夜精品视频天天综合网| 亚洲一区二区人妻| 成人网页在线观看| 羞羞小视频在线观看| www 成人av com| 久久久中文字幕| 久久中文精品| 欧美午夜激情小视频| 又黄又爽在线免费观看| 青青操视频在线播放| 97在线超碰| 美国美女黄色片| 亚洲精品久久久久久久久| 日本亚洲视频| 中文幕无线码中文字蜜桃| www日韩精品| 伊人色综合网| 欧美色综合网站| 日韩欧美综合在线| 亚洲精品小区久久久久久| 亚洲另类av| 91精品国产91热久久久做人人| 精品无码久久久久久国产| 日本黄色录像视频| 日本大片在线播放| 色狼人综合干| 国产精品专区免费| 色播久久人人爽人人爽人人片视av| 欧美经典影片视频网站| 国产亚洲精品成人av久久ww| 狠狠色丁香婷婷综合影院| 国产亚洲短视频| 亚洲狠狠爱一区二区三区| 开心久久婷婷综合中文字幕| 麻豆精品免费视频入口| 日本黄色成人| 亚洲黄色小说网| 很黄很污的网站| 久久免费视频网| 中文文字幕一区二区三三| 日韩午夜电影免费看| 热久久视久久精品18亚洲精品| 性xxxx18| 亚洲精品97| 精品91免费| www欧美成人18+| 在线免费观看污视频| 91国偷自产一区二区三区成为亚洲经典| 天堂在线国产| 国产乱码精品一区二区三区四区| 99久久国产热无码精品免费| 国产成人在线精品| 久久人人97超碰精品888| 99国产一区二区三精品乱码| 亚洲第一网站免费视频| 一个人www视频在线免费观看| 一区二区三区四区av| 亚洲av无码国产精品久久不卡| 免费一级做a爰片久久毛片潮| 国产精品伦一区二区三区级视频频| 香蕉97视频观看在线观看| 丁香影院在线| 亚洲精品久久久久久久久久久久久| 国产.欧美.日韩| 91超碰在线免费| 国产精品456露脸| 亚洲国产视频在线观看| 在线免费视频一区| 成人免费在线播放| 亚洲一区精品视频在线观看| 男人天堂视频网| 成在线人视频免费视频| 亚洲av永久纯肉无码精品动漫| 丁香激情五月婷婷| 久久婷婷国产| 欧美成人精品欧美一级乱| 翔田千里亚洲一二三区| 奇米色777欧美一区二区| 一级二级在线观看| 五月天亚洲激情| 国产一区视频在线观看免费| 中文字幕亚洲情99在线| 日本精品在线观看| xxxxwwww在线免费观看| 毛毛毛毛毛毛毛片123| 99re视频在线播放| 精品国产一区三区| 精品人妻一区二区三区三区四区| gogo人体高清视频| 亚洲性图久久| 波多野结衣绝顶大高潮| 久久久高清一区二区三区| 久久一区二区三区av| 国产欧美日韩不卡| 久操免费在线视频| 中文字幕丰满乱子伦无码专区| 国产大片在线免费观看| 国产无码精品久久久| 十八禁视频网站在线观看| 国产传媒一区二区| 国产精品第10页| 欧美一级欧美三级在线观看| 亚洲精品日韩成人| 亚洲最新中文字幕| 色欧美88888久久久久久影院| 中日韩av在线播放| 亚洲午夜精品一区二区国产| 91九色国产ts另类人妖| 欧美毛片免费观看| 久久精视频免费在线久久完整在线看| a天堂资源在线观看| 美女在线免费视频| 久久久久久久久免费| 成人在线免费观看视频| 久热精品免费视频| 极品美妇后花庭翘臀娇吟小说| 国产九九视频一区二区三区| 欧美韩国日本精品一区二区三区| 女同视频在线观看| 最近中文字幕mv免费高清视频8| 97精品国产福利一区二区三区| 欧美成人全部免费| 中文字幕中文字幕在线中心一区| 日本黄色精品| 欧美熟妇另类久久久久久多毛| 日韩一区二区三区四区| 大荫蒂性生交片| 国产成人精品一区二区三区福利| 中文字幕a在线观看| 娇小发育未年成性色xxx8| 一区二区在线观看不卡| 亚洲一区日韩| 成人黄色av免费在线观看| 神马午夜精品95| 欧美色欧美色| 亚洲影视一区二区三区| 亚洲尤物视频网| 亚洲精品7777| 欧美日韩的一区二区| 国产精品99一区| 国产在线观看高清视频| 国产免费一区二区三区在线观看| 亚洲综合国产激情另类一区| 国产成人精品亚洲线观看| 奶水喷射视频一区| 日本中文字幕一区二区有码在线| 久久免费视频一区| 亚洲www永久成人夜色| 中文字幕亚洲欧洲| 日本精品视频一区二区| 欧美精选一区二区| 日韩有码在线视频| 精品中文字幕一区二区三区四区| 亚洲精品精品一区| 亚洲熟女综合色一区二区三区| 日本xxxxxxx免费视频| 久久亚洲欧美日韩精品专区| 青青草在线观看视频| 九色视频成人自拍| 深爱激情综合网| 新版中文在线官网| 日本中文字幕在线播放| 亚洲精品在线二区| 久久mv成人精品亚洲动漫| 综合136福利视频在线| 午夜视频在线| 日本伊人精品一区二区三区介绍| 欧美 亚洲 视频| 国产亚洲精品成人a| 中文字幕理伦片免费看| 欧美三级视频在线播放| 国产小视频福利在线| 99re这里有精品| 中文字幕av不卡| 国产精品啊啊啊| 国产精品一区二区精品| 99精品在免费线偷拍| 国产女人18毛片18精品| 日本在线观看网址| 亚洲第一综合天堂另类专| 免费黄色网页在线观看| 亚洲在线观看视频网站| 久久五月精品中文字幕| av网站大全在线| 久久久久久久久久久久91| 欧美成人a∨高清免费观看| 写真福利片hd在线播放| 国产精品美女久久久久久2018| 久久久久久91精品色婷婷| 一二三区中文字幕| 97av在线播放| 天天躁日日躁狠狠躁喷水| 日韩欧美国产成人一区二区| 久久综合影视| 国产高清精品一区| 蜜桃av乱码一区二区三区| 污污视频在线看| 可以在线观看的黄色| 国内揄拍国内精品| 亚洲成色www.777999| 亚洲激情啪啪| 久久久精品动漫| 亚洲精品中文字幕乱码三区不卡| 电影在线观看一区| 青梅竹马是消防员在线| 国产66精品| 天天综合在线观看| 可以免费看的黄色网址| 国产精品久久久久久久久晋中| 中文字幕97| 午夜av在线免费观看| 天天操天天操天天色天天要| 欧美区在线播放| 国产精品久久久999| 亚洲一区欧美激情| 嫩草影院一区二区三区| 国内精品福利| 伊人网在线观看| av不卡高清| 色一色在线观看视频网站| 国产1区在线| 久热中文字幕| 欧美成人久久| 亚洲欧美另类综合| 玖玖玖电影综合影院| 男人午夜天堂| 日韩av午夜在线观看| 欧美精品一区在线发布| 97超碰人人爽| 精品成人免费一区二区在线播放| 久久亚洲精品中文字幕| 国产一区二区主播在线| 91久久奴性调教| 亚洲91av| 看黄网站在线观看| 热re91久久精品国99热蜜臀| www.欧美三级电影.com| 久久丫精品忘忧草西安产品| 欧美日韩一区二区电影| 日本午夜精品一区二区三区| 精品福利影院| 亚洲1234区| 日韩最新av在线| 日韩 欧美 综合| 国产伦精品一区二区三区视频网站| 二人午夜免费观看在线视频| 亚洲男人天堂久| xxxxxx黄色| 亚洲欧洲av色图| 亚洲欧美一区二区三区久本道91| 国模极品一区二区三区| 一个人看的视频www在线观看免费| 色八戒一区二区三区| 91精品婷婷国产综合久久竹菊| 欧美成人嫩草网站| 亚洲一区美女视频在线观看免费| se在线视频| 国产精久久久久| 亚洲中文无码av在线| 青春草在线免费视频| 国产精品久久久久aaaa九色| 尤物九九久久国产精品的特点| 国产高潮在线| 欧美日韩国产观看视频| 福利精品视频| 日韩大片在线免费观看| 精品一区二区三孕妇视频| 欧美午夜精品久久久久久浪潮| 日本欧美一级片| 国产同性人妖ts口直男| 国产精品理论在线| 91一区二区三区在线播放| 久久一区二区免费播放| 日韩精品丝袜在线| 91麻豆产精品久久久久久| 日韩av一区二区三区美女毛片| 视频区小说区图片区| 国产在线观看免费av| 国产成a人无v码亚洲福利| 中文字幕免费在线观看| 性欧美video视频另类| 欧美久久在线观看| 欧美aaaaa喷水| 欧美日韩在线视频一区二区| 成人美女在线视频| 欧美成人精品在线视频| 亚洲一区精彩视频| www日韩大片| 毛片手机在线观看| 韩日精品一区| 亚洲一二三四五| 视频区小说区图片区| 国产成人久久婷婷精品流白浆| 西西44rtwww国产精品| 青青草97国产精品免费观看| 久久国产精品色| 中国黄色片免费看| av在线免费观看网站| 国产免费一区二区三区四在线播放| 国产1区2区视频| 国产嫩草影院久久久久| 国产精品久久av| 国内精品久久久久国产| 国产精华7777777| 亚洲+小说+欧美+激情+另类| 992tv成人免费影院| 中文字幕亚洲欧美日韩| 北条麻妃国产九九九精品小说| 午夜爽爽爽男女免费观看影院| 日本在线免费| 久久综合99re88久久爱| 亚洲已满18点击进入在线看片| 五月天激情综合| 啦啦啦啦免费高清视频在线观看1| 中文字幕另类日韩欧美亚洲嫩草| 性高潮视频在线观看| 国产精品亚洲一区二区三区在线观看| 五月天婷婷综合| 久久综合精品视频| 久久精品高清| 影音先锋国产在线| 免费黄色日本网站| 天天干在线影院| 一区二区三区产品免费精品久久75| 久草在.com|