c#正则表达式 ipv4地址

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

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

大米粥哥哥

感谢认可!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值