c 正規表示式 ipv4位址

2021-08-07 07:03:36 字數 1511 閱讀 3229

@"^((([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-9之間的字串                                         如 a1

^[0-9]$ 字串只有乙個0-9的字元 即可匹配                  如 1

^[0-9]|[0-9]$ 字串字首和字尾都是0-9 即可匹配             如 1a9

^代表字串的開始位置 也就是第乙個字元   也可以是一群^()

$代表字串的結束位置 也就是最後乙個字元  也可以是一群()$

分開可匹配字首字尾 合起來^()$  匹配整個字串

的優先順序是最低的

1.判斷是否只乙個數字字元

pattern = "^[0-9]$";

2.判斷是否只是0-99的數字    注意:01!=1

pattern = "(^[0-9]$)|(^[1-9][0-9]$)";

3.判斷是否只是0-255之間的數字

pattern = "(^[0-9]$)|(^[1-9][0-9]$)|(^1[0-9][0-9]$)|(^2[0-4][0-9]$)|(^25[0-5]$)";

看著好煩 簡化一下 只留下乙個 ^$   注意要加括號 因為 | 的優先順序是最低的

pattern = "^(([0-9])|([1-9][0-9])|(1[0-9][0-9])|(2[0-4][0-9])|(25[0-5]))$";

同理 2 也可簡化為:

pattern = "^(([0-9])|([1-9][0-9]))$";

繼續簡化:

pattern = @"^[1-9]?\d$";

4.判斷 0-255.0-255.0-255.

pattern = @"^(((([1-9]?\d)|(1[0-9][0-9])|(2[0-4][0-9])|(25[0-5]))\.))$";

可得注意()括號 表示重複三次  .可匹配任意字元    \.只能匹配.   @

配合\轉義

5.判斷ip位址的格式

pattern=@"^(((([1-9]?\d)|(1[0-9][0-9])|(2[0-4][0-9])|(25[0-5]))\.)(([1-9]?\d)|(1[0-9][0-9])|(2[0-4][0-9])|(25[0-5])))$";

6.對其簡化   由於|的優先順序最低 可去掉其周圍的)(  [0-9]=\d  

pattern=@"^((([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]))$";

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...

IPv4 位址匹配 正規表示式

最近在學習正規表示式的時候發現乙個很好的入門網頁 在介紹分組的時候,舉了乙個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位,用十進位制數字表...

檢查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 ...