各位安好,请问怎么用正则表达式验证ip段?求普及
例如,在验证ip192.168.1.159/24的时候,前面的ip和后面的/24都同时验证?当然,其他的合格的也必须可以验证才行。多谢各路大神指导。
如果你对这篇文章有疑问,欢迎到本站 社区 发帖提问或使用手Q扫描下方二维码加群参与讨论,获取更多帮助。

评论(26)




(?:ip)?(((?<![0-9])0?[0-9]?[0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5]).(0?[0-9]?[0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5]).(0?[0-9]?[0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5]).(0?[0-9]?[0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5]))(?:/([0-9]+))?
改成这样,然后group(1)保存整个ip段,group(2)保存192,group(3)保存168, group(4)保存1,group(5)保存91,group(6)保存24. (以ip192.168.1.91/24为例)





String reg = "^(d{1,3}.d{1,3}.d{1,3}.d{1,3})/(d{1,2})$";
String str = "192.168.2.2/24";
第一种懒人方法使用捕获组:
String rst = str.replaceAll(reg,"$1");//得出ip,$2得出第二个括号
第二种正常取捕获组的方式:
Pattern pattern = Pattern.compile(reg);
Matcher m = pattern.matcher(str);
if(m.find())
String ip = m.group(1);
发布评论
需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。