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)); } } }
相关文章推荐
- CV codes代码分类整理合集(http://www.sigvc.org/bbs/thread-72-1-1.html)
- CV codes代码分类整理合集(http://www.sigvc.org/bbs/thread-72-1-1.html)
- (收藏)CV codes代码分类整理(CV codes代码分类整理合集 http://www.sigvc.org/bbs/thread-72-1-1.html)
- CV codes代码分类整理合集 http://www.sigvc.org/bbs/thread-72-1-1.html
- http://www.faqs.org/docs/securing/index.html
- R链接到数据库(http://www.dataguru.cn/thread-289411-1-1.html)
- 怎么划分VLAN【转帖:http://www.ixpub.net/thread-1124504-1-1.html】
- http://bbs.itcast.cn/thread-15273-1-1.html?from=gkk
- libsvm -c http://www.ilovematlab.cn/thread-89155-1-1.html
- android手势识别(转) http://www.eoeandroid.com/thread-229581-1-1.html (出处: eoe 移动开发者论坛)
- MFC加载皮肤 转自:http://www.cctry.com/thread-4032-1-1.html
- 匿名带你从零开始做四轴-第二期----四轴飞控的作用 http://www.anobbs.com/thread-1197-1-1.html (: 匿名科创)
- poll&&epoll实现分析(二)—epoll实现 http://www.embeddedlinux.org.cn/html/yingjianqudong/201405/11-2859.html
- http://www.mianwww.com/html/category/it-interview/spring/
- MySQL用户授权 和 bin-log日志 详解和实战(http://www.cnblogs.com/it-cen/p/5234345.html)
- Emacs for vim Users---from http://www.crazyshell.org/blog/
- 使用Vim+Ctags+Cscope阅读源代码 http://www.lupaworld.com/forum-viewthread-tid-49968.html
- 22个很棒的HTML5和CSS3教程 http://www.html51.com/thread-85-1-1.html
- http://www.arduino.cn/thread-6690-1-1.html
- EditText 输入小数点的问题~!http://www.eoeandroid.com/thread-317450-1-1.html