html抽取
<li class="ji" _bg=Y> <span class="one lan1 cutT" _chk=694> <script>wm(0)</script> <a _tc='0' href="/b-1001024083/694.htm" _link='1'>车世界中的6位女神</a><script>wm(7)</script></span> <span class="two lan2 cut"><a _ulink='312898810'>誑嬡柏&lsquo;鋇鋇</a></span> <span class="three gary1" _mng=N> 8/<font color="#FF0000">2770</font></span> <span class="four lan2 cut" _mng=N> <a _ulink=1023781448>吉日总部客服</a></span> <span class="five gary1" _mng=N><script>wt(1237172399)</script></span><span class="one lan2 mngBtn" _mng=Y _id="694" _elite="0" _top="0" _lock="0" style="display:none"></span> </li>对于这样一段html代码,我想抽取其中的帖子标题&ldquo;车世界中的6位女神&rdquo;,帖子的作者&ldquo;誑嬡柏&lsquo;鋇鋇&rdquo;,帖子的点击和回复数&ldquo;8/2770&rdquo;,帖子的最后回复人&ldquo;吉日总部客服&rdquo;
java的正则应该怎么写呢?
我原来的例子是这样的
package com.common.test;import java.util.ArrayList;import java.util.Iterator;import java.util.List;import java.util.regex.Matcher;import java.util.regex.Pattern;@SuppressWarnings("unchecked")public class servicingTest0 {public static void main(String args[]) {String html = "<title>买X3前最后一次考察 没想到就直接下订金了</title>" + "<title>BMW 2009精英驾驶培训课程现已出炉,3月全面启动招募报名!</title>"+ "<title>宝马7系历史回顾</title>";List resultList = getContext("<title>", "</title>", html);for (Iterator iterator = resultList.iterator(); iterator.hasNext();) {String context = (String) iterator.next();System.out.println(context);}}public static List getContext(String start, String end, String html) {List resultList = new ArrayList();/** * Pattern p = Pattern.compile("<title>([^</title>]*)"); */Pattern p = Pattern.compile(start + "([^" + end + "]*)");// 匹配<title>开头,</title>结尾的文档Matcher m = p.matcher(html);while (m.find()) {resultList.add(m.group(1));}return resultList;}} 但是现在实际的问题是不存在像title那样简单的标签,比如帖子的标题标签是<a _tc='0' href="/b-1001024083/694.htm" _link='1'>标题</a>,这个694是需要变化的,如果是用&rdquo;火车采集器&ldquo;那么我只要给定<a _tc='0' href="/b-1001024083/(*).htm" _link='1'>和</a>,就可以拿到帖子标题,现在java中用正则如何实现这一功能,大大们帮我指点一下?谢谢啦
页:
[1]