日期:2014-05-18  浏览次数:20623 次

正则表达式求助~~
问题如下:   我现在需要用正则表达式在一个HTML中提取一些数据,数据形式是tr中前一个td中内容是固定,后一个td不确定,但我需要的是后一个td的内容,例如:
      <tr>
            <td> 水果 </td>
            <td> 苹果 </td>
      </tr>
我同这则表达式 <.*?> (.*?水果)可以找到第一个td的数据,但后面一个td的数据改怎么样获取呢??因为后面一个是不确定的,就是他的value是不确定的!     请大家帮帮忙~~

------解决方案--------------------
.*?水果 </td> <td> (.*?) </td> .*?
这样应该可以把
------解决方案--------------------
String str = " <tr> <td> 水果 </td> <td> 苹果 </td> </tr> ";
Pattern p = Pattern.compile( " <tr> <td> .*? </td> ( <td> .* </td> ) </tr> ");
Matcher m = p.matcher(str);
while(m.find()){
System.out.println(m.group(1));
}
------解决方案--------------------
发贴的时候,先搜下啊,这个都有好多问过了
抽取标签里的内容。
String s = " <td> aa </td> <td> bb </td> <td> 11125 </td> ";
String regex = " <(.+)> (.*?) </\\1> ";
Pattern p = Pattern.compile(regex);
Matcher m = p.matcher(s);
while (m.find()) {
System.out.println(m.group(2));
}
其中的\\1表示为匹配的第1部分。
------解决方案--------------------
String str = " <tr> <td> 水果 </td> <td> 苹果 </td> </tr> ";
System.out.println(str.replaceAll( "(?is).* <td> (.+?) </td> .* ", "$1 "));
------解决方案--------------------
象这样的问题应该用javascript脚本来处理,最好在要处理td上设置个id属性,
然后用document.getElementById( " ").innerText就可以读到表格的内容啦!
不要什么问题都用你喜欢的方法,要用有用、高效的方法(建议)!