您的位置:首页 > 编程语言 > C#

c#正则表达式 ipv4地址

2017-08-22 21:17 127 查看
Ip地址正则表达式:

       @"^((([1-9]?\d|1\d\d|2[0-4]\d|25[0-5])\.){3}([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

       ^代表字符串的开始位置 也就是第一个字符   也可以是一群^()

$代表字符串的结束位置 也就是最后一个字符  也可以是一群()$

       分开可匹配前缀后缀 合起来^()$  匹配整个字符串

优先级(详情百度):| 的优先级是最低的

 

以下介绍如何一步一步的写出ip地址的正则表达式:

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]))\.){3})$";

     可得注意()括号 {3}表示重复三次  .可匹配任意字符    \.只能匹配.   @配合\转义

5.判断ip地址的格式

     pattern=@"^(((([1-9]?\d)|(1[0-9][0-9])|(2[0-4][0-9])|(25[0-5]))\.){3}(([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])\.){3}([1-9]?\d|1\d\d|2[0-4]\d|25[0-5]))$";
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: