String REGEX = "((?:(?: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))))";在字符串“http://192.168.1.461:3421/test.do?url=test”,“demo exist 127.0.5.35.”,“test12.34.22.11.56.47data” 这些场景下如何提取出正确的IP?Pattern pat = Pattern.compile(REGEX);
Matcher mt = pat.matcher(字符串);
while (mt.find()) {
System.out.println("" + mt.group());
}
192.128.1.461被匹配出192.168.1.46 ⊙﹏⊙b汗死姐勒!求贪婪型能搞定上述场景的正则表达式或解决方案,万分感谢
Matcher mt = pat.matcher(字符串);
while (mt.find()) {
System.out.println("" + mt.group());
}
192.128.1.461被匹配出192.168.1.46 ⊙﹏⊙b汗死姐勒!求贪婪型能搞定上述场景的正则表达式或解决方案,万分感谢
解决方案 »
- *********求myeclipse8.0m1 下载地址*****
- 请问java中对于public的static何时可以删除,以及void的使用原则给介绍一下
- 求一DAO例题
- 如何能够在 JTable 单元格中显示一个超链接信息?在线等,答出立即给分
- 如何将XML文件写到数据库中的一个字段中去?希望有详细的解释
- 问一个包的问题
- 有没有rmi的好例程,一用就灵,急
- 由于JAVA在开发GUI程序的时候,提供了很多布局管理类,我想知道在现实开发当中,哪个布局管理类用的比较多!回答者都有分
- 如何判断 字符串的编码方式
- 我是一个java的初学者,我希望你们这些长辈指点一下如何去学好java,由哪里开始学为妙。
- java运算符优先级问题
- 连接仪器,监听端口并接受数据
比如说:
http://192.168.1.461:3421/test.do?url=test字符串
192.168.1.461是错误ip。不应该匹配。
demo exist 127.0.5.35.”
也是错误的吗?35后面有个点。
test12.34.22.11.56.47data
12.34.22.11.56.47也是错误的吗?能说明白点嘛?弄的一知半解。
写不写的出来是一回事,对吧。
这三种场景都是错误的。 原本是不应该匹配出来的,现在用REGEX都匹配出来了
http://192.168.1.461:3421/test.do?url=test字符串
192.168.1.461是错误ip。 匹配出192.168.1.46
demo exist 127.0.5.35.”
也归为错误的。 匹配出127.0.5.35
test12.34.22.11.56.47data
12.34.22.11.56.47也是错误的。 匹配出12.34.22.11想求一个正则表达式能既截取又校验的,,,
或者说在现有的REGEX上面加一点,判断后面非指定字符
按照楼主你这个要求,要考虑先把你认为合理的 IP 信息抓出来,然后在判断是否为合法IP。也即先按照"[1-9.]+"来抓取每个你认为完整的IP信息,
然后再用 matches("XXXOOO") 来判断其是否合法。
String regex = "(?<![\\d+\\.])((?:(?: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))))(?![\\d\\.])";
String s = "http://192.168.1.461:3421/test.do?url=tes," +
"demo exist127.0.5.35.," +
"demo exist1127.0.5.35.," +
"demo exist.127.1.5.35.," +
"demo exist192.168.1.1lkjh," +//正确的
"test12.34.22.11.56.47data" ;
// 这些场景下如何提取出正确的IP?
public static void main(String[] args) throws Exception {
// http://www.mkyong.com/regular-expressions/how-to-validate-ip-address-with-regular-expression/
String regex = "([01]?\\d\\d?|2[0-4]\\d|25[0-5])\\.([01]?\\d\\d?|2[0-4]\\d|25[0-5])\\.([01]?\\d\\d?|2[0-4]\\d|25[0-5])\\.([01]?\\d\\d?|2[0-4]\\d|25[0-5])";
String input = "http://192.168.1.461:3421/test.do?url=test字符串 demo exist 127.0.5.35. test12.34.22.11.56.47data";
Matcher matcher = Pattern.compile(regex).matcher(input);
while (matcher.find()) {
System.out.println(matcher.group());
}
}
192.168.1.46
127.0.5.35
12.34.22.11