C#中验证IP地址的正则表达式是什么

 我来答
飘叶杂谈
2012-11-28 · TA获得超过536个赞
知道小有建树答主
回答量:1221
采纳率:83%
帮助的人:568万
展开全部
((?:(?:25[0-5]|2[0-4]\d|((1\d{2})|([1-9]?\d)))\.){3}(?:25[0-5]|2[0-4]\d|((1\d{2})|([1-9]?\d))))

具体如下:
1. 250-255:特点:三位数,百位是2,十位是5,个位是0~5,用正则表达式可以写成:25[0-5]
2. 200-249:特点:三位数,百位是2,十位是0~4,个位是0~9,用正则表达式可以写成:2[0-4]\d
3. 0-99的正则表达式可以合写为[1-9]?\d,那么0-199用正则表达式就可以写成(1\d{2})|([1-9]?\d),
4. 这样0~255的正则表达式就可以写成(25[0-5]|2[0-4]\d|((1\d{2})|([1-9]?\d)))

所以最终为 0-255的表达式重复三次{3}再跟一次没点的
Storm代理
2023-07-25 广告
StormProxies是一家国内优质海外HTTP代理商,拥有一个庞大的IP资源池,覆盖200多个地区,IP数量大且匿名度高。其优点还包括超高并发、稳定高效、技术服务等特点,同时提供HTTP、HTTPS以及SOCKS5协议支持。此外,Sto... 点击进入详情页
本回答由Storm代理提供
匿名用户
2013-08-27
展开全部
加上开始与结束标志之后,再考虑前后出现空格的问题,最后形成表达式

var re = /^\s*((\d{1,10})|(\d{1,8}.\d)|(\d{1,7}.\d{1,2}))\s*$/;

这是我用11个的测试用例,如果没有理解错楼主的意思的话,前7个应该为true,后4个应该为false,全部通过测试。

alert(re.test("12"));
alert(re.test(" 12 "));
alert(re.test("1234567890"));
alert(re.test("12.3"));
alert(re.test(" 12.34"));
alert(re.test("12345678.9 "));
alert(re.test("1234567.89"));

alert(re.test("123456789012"));
alert(re.test("1234567890.1"));
alert(re.test("1234567890.12"));
alert(re.test("1234567890.123"));

另外,如果要考虑第一个数字不能为零的情况,则还需要再修改一下,不知道楼主需不需要,我就不做无用功了。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
辣妈省钱购
2012-11-27 · 超过30用户采纳过TA的回答
知道答主
回答量:144
采纳率:100%
帮助的人:90.6万
展开全部
[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
我是板蓝根
2012-11-27 · TA获得超过1723个赞
知道小有建树答主
回答量:2011
采纳率:33%
帮助的人:901万
展开全部
((2[0-4]\d|25[0-5]|[01]?\d\d?)\.){3}(2[0-4]\d|25[0-5]|[01]?\d\d?)
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
哲事姓无
2012-11-27 · TA获得超过1176个赞
知道小有建树答主
回答量:903
采纳率:100%
帮助的人:427万
展开全部
Regex.IsMatch(str, @"\b(25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9]?[0-9])\.(25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9]?[0-9])\.(25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9]?[0-9])\.(25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9]?[0-9])\b");
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式