C#:求一个正则表达式,匹配“0.0.0.0”~“255.255.255.255”,即[0-255]\.[0-255]\.[0-255]\.[0-255]
答案:4 悬赏:50
解决时间 2021-04-18 05:15
- 提问者网友:你独家记忆
- 2021-04-17 23:38
C#:求一个正则表达式,匹配“0.0.0.0”~“255.255.255.255”,即[0-255]\.[0-255]\.[0-255]\.[0-255]
最佳答案
- 二级知识专家网友:萌萌哒小可爱
- 2019-10-16 12:40
、解析IP地址正则表达式:((?:(?:25[0-5]|2[0-4]\d|[01]?\d?\d)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d?\d))
2、分析:IP地址的长度为32位,分为4段,每段8位,用十进制数字表示,每段数字范围为0~255,段与段之间用英文句点“.”隔开。以255.226.168.1为例,可以分析出IP地址的组成特点,250——255、200——249、0——199,这三种情况可以分开考虑,最简单的是250——255,用正则可以写成:25[0-5];200——249可以这样写:2[0-4]\d;0——199有些麻烦,不过可以继续分拆,这样写起来更加简单明了,0——9、10——99、100——199,这样分开考虑,就得到了三个式子:\d、\d\d(有冗余)、1\d\d,这三个式子我们可以像合并同类项一样把它们合并到一起:[01]?\d?\d。这样我们就得到了一段数字的正则表达式:25[0-5]|2[0-4]\d|[01]?\d?\d,后三段每段数字之前都有一个“.”号,合并起来考虑,前三段数字可以写到一起:(25[0-5]|2[0-4]\d|[01]?\d?\d)\.,然后单独写第四段数字:25[0-5]|2[0-4]\d|[01]?\d?\d,所以整个合起来的正则表达式就是:((?:(?:25[0-5]|2[0-4]\d|[01]?\d?\d)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d?\d))
2、分析:IP地址的长度为32位,分为4段,每段8位,用十进制数字表示,每段数字范围为0~255,段与段之间用英文句点“.”隔开。以255.226.168.1为例,可以分析出IP地址的组成特点,250——255、200——249、0——199,这三种情况可以分开考虑,最简单的是250——255,用正则可以写成:25[0-5];200——249可以这样写:2[0-4]\d;0——199有些麻烦,不过可以继续分拆,这样写起来更加简单明了,0——9、10——99、100——199,这样分开考虑,就得到了三个式子:\d、\d\d(有冗余)、1\d\d,这三个式子我们可以像合并同类项一样把它们合并到一起:[01]?\d?\d。这样我们就得到了一段数字的正则表达式:25[0-5]|2[0-4]\d|[01]?\d?\d,后三段每段数字之前都有一个“.”号,合并起来考虑,前三段数字可以写到一起:(25[0-5]|2[0-4]\d|[01]?\d?\d)\.,然后单独写第四段数字:25[0-5]|2[0-4]\d|[01]?\d?\d,所以整个合起来的正则表达式就是:((?:(?:25[0-5]|2[0-4]\d|[01]?\d?\d)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d?\d))
全部回答
- 1楼网友:一起来看看吧
- 2021-01-04 14:19
因为正则表达式中一个中括号[ ] 只能匹配单个字符,比如:[0-9],只能匹配0~9中的1个字符,[a-z0-9?_\)@#\(]都是匹配单个字符。
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯
• 手机登qq时,显示手机磁盘不足,清理后重新登 |
• 刺客的套装怎么选啊? |