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程序设计有所帮助。