c#正则表达式 ipv4地址
发布日期:2021-05-07 00:06:33 浏览次数:18 分类:精选文章

本文共 1238 字,大约阅读时间需要 4 分钟。

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]))$";

上一篇:c#WinForm固定窗口大小
下一篇:c#多人聊天室

发表评论

最新留言

留言是一种美德,欢迎回访!
[***.207.175.100]2025年04月10日 07时11分16秒