@"^((([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 ...