Java使用正则表达式匹配获取链接地址的方法示例
本文实例讲述了Java使用正则表达式匹配获取链接地址的方法。分享给大家供大家参考,具体如下:
获取页面中字符串的url地址我们都会使用正则表达式来匹配获取了,下面我来给大家总结几个匹配获取链接地址示例。
1、正则表达式中Matcher中find()方法的应用。
2、String对象中的replaceAll(Stringregex,Stringreplacement)方法的使用。通过这个方法去除了不必要的字符串,从而得到了需要的网址和链接文字
例1.超简单的
Stringcontent=""; Stringpattern="href="([^"rel="externalnofollow"]*)""; Patternp=Pattern.compile(pattern,2|Pattern.DOTALL); Matcherm=p.matcher(content); if(m.find()){ System.out.println("url="+m.group(1)); }
例2.上面只能获取带有双“号的a标题中的url,下面我们加以改进可以获取任何状态下的a标题url
packagecom.gong.example; importJava.util.regex.Matcher; importjava.util.regex.Pattern; publicclassSimple{ publicstaticvoidmain(String[]args){ Stringinput="www.nhooo.com"+ " www.163.com"+ " www.yahoo.com"; StringpatternString="\s*(?i)href\s*=\s*("([^"]*")|'[^']*'|([^'">\s]+))";//href Patternpattern=Pattern.compile(patternString, Pattern.CASE_INSENSITIVE); Matchermatcher=pattern.matcher(input); while(matcher.find()){ Stringlink=matcher.group(); System.out.println(link); link=link.replaceAll("href\s*=\s*(['|"]*)",""); System.out.println("--"+link); link=link.replaceAll("['|"]",""); System.out.println("---"+link); } } }
例3.我们还可以利用它进行升级获取获取网址和链接文字哦。
/* 功能说明:分析字符串s,提取s里面的超链接和链接文字 */ importjava.util.regex.Matcher; importjava.util.regex.Pattern; publicclassRegTest { publicstaticvoidmain(String[]args) { //Strings="空间 | (.*)"; Patternpt=Pattern.compile(regex); Matchermt=pt.matcher(s); while(mt.find()) { System.out.println(mt.group()); System.out.println(); Strings2=">.*?";//标题部分 Strings3="href=.*?>"; Patternpt2=Pattern.compile(s2); Matchermt2=pt2.matcher(mt.group()); while(mt2.find()) { System.out.println("标题:"+mt2.group().replaceAll(">|","")); } Patternpt3=Pattern.compile(s3); Matchermt3=pt3.matcher(mt.group()); while(mt3.find()) { System.out.println("网址:"+mt3.group().replaceAll("href=|>","")); } } } }
PS:这里再为大家提供2款非常方便的正则表达式工具供大家参考使用:
JavaScript正则表达式在线测试工具:
http://tools.jb51.net/regex/javascript
正则表达式在线生成工具:
http://tools.jb51.net/regex/create_reg
更多关于java算法相关内容感兴趣的读者可查看本站专题:《Java正则表达式技巧大全》、《Java数据结构与算法教程》、《Java操作DOM节点技巧总结》、《Java文件与目录操作技巧汇总》和《Java缓存操作技巧汇总》
希望本文所述对大家java程序设计有所帮助。