您的位置:首页 > 理论基础 > 计算机网络

http://www.crazyit.org/thread-3602-1-1.html

2010-03-21 19:25 357 查看

从HTML脚本中提取超链接

昨天去个公司笔试,编程题是让写一个程序,能分离出HTML脚本中是超链接并显示出来。
当时写是写上了,完后再网上一查才知道,自己做的一点边都没有。我用的是字符串查找,找个href="后,再给它后面的东西取出来,直到"结束。
看了看网上说是,原来是用正则表达式,当初没学啊,说是等用的时候在网上查下就知道了。唉,悔不当初啊。
今天我在网上找了点资料,把整个程序写了出来。
ReadFile.java
复制内容到剪贴板
代码:
import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;

public class ReadFile{

public String readFile(String path) throws IOException{
String content = "";
BufferedReader reader = null;
try{
reader = new BufferedReader(new FileReader(path));
String line;
while((line = reader.readLine())!=null){
content += line + "/n";
}
}catch(Exception e){
e.printStackTrace();
}finally{
if(reader!=null){
try{
reader.close();
}catch(IOException e){
e.printStackTrace();
}
}
}
return content;
}
}

PatternHTML.java
复制内容到剪贴板
代码:
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class PatternHTML{
public static void main(String[] args){
String path = null;
if(args.length>0){
path = args[0];
}else{
System.out.println("请输入文件地址");
System.exit(0);
}

ReadFile rf = new ReadFile();
String str = null;
try{
str = rf.readFile(path);
}catch(Exception e){
e.printStackTrace();
}
String pat = "<a.+?href=(/"|'|)//b(.+?)//b//1(?://s.*)?>(.+?)</a>";
Pattern pattern = Pattern.compile(pat);
Matcher matcher = pattern.matcher(str);
while(matcher.find()){
//显示超链接,以及其名称
System.out.println(matcher.group(2) + "------" + matcher.group(3));
}
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐