<TD width="130" align="center" noswap>您查询的手机号码段</TD>
<TD width=* align="center" class=tdc2>15820420875</TD>
</TR>
<TR class=tdc bgcolor=#EFF1F3>
<TD align="center">卡号归属地</td><!-- <td width="130" align="center">卡号归属地</TD> -->
 <TD class="tdc2" align="center">广东&nbsp;深圳</TD>
</TR>
<TR class=tdc bgcolor=#EFF1F3>
<!-- <td width="130" align="center" noswap></td> --><TD width="130" align="center" noswap>卡&nbsp;类&nbsp;型</td><td align="center" class='tdc2'>移动动感地带卡</TD>
</TR>
<TR class=tdc bgcolor=#EFF1F3>
<TD align="center">区 号</TD>
<!-- <td></td> --><TD align="center" class=tdc2>0755</TD>
</TR>
<TR class=tdc bgcolor=#EFF1F3>
<TD align="center">邮 编</TD>上述为所用JAVA写的抓取的网页内容,现在要在JAVA里写个正则把几个信息内容提取出来:
15820420875、广东、深圳、移动动感地带卡。要提取这四个信息,各大哥帮下,急用啊,不用得用怎么写一条正则来匹配提取上述四个信息.各位大哥,能帮小弟写个用在JAVA里的正则吗,真的很急!网上查半天也搞不懂。         String REGEX = "";
        p1 = Pattern.compile(REGEX);   
        m1 = p1.matcher(htmlSource);   
     while (m1.find()) {
      result1 = m1.group(0);
      System.out.println(result1);

我想用上面的语句把我想要的四个信息提取出来

解决方案 »

  1.   


    public static void main(String[] args) {
    String str = "<TD width=\"130\" align=\"center\" noswap>您查询的手机号码段</TD>\n"+
    "<TD width=* align=\"center\" class=tdc2>15820420875</TD>\n"+
    "</TR>\n"+
    "<TR class=tdc bgcolor=#EFF1F3>\n"+
    "<TD align=\"center\">卡号归属地</td><!-- <td width=\"130\" align=\"center\">卡号归属地</TD> -->\n"+
    "<TD class=\"tdc2\" align=\"center\">广东&nbsp;深圳</TD>\n"+
    "</TR>\n"+
    "<TR class=tdc bgcolor=#EFF1F3>"+
    "<!-- <td width=\"130\" align=\"center\" noswap></td> --><TD width=\"130\" align=\"center\" noswap>卡&nbsp;类&nbsp;型</td><td align=\"center\" class='tdc2'>移动动感地带卡</TD>"+
    "</TR>"+
    "<TR class=tdc bgcolor=#EFF1F3>"+
    "<TD align=\"center\">区 号</TD>"+
    "<!-- <td></td> --><TD align=\"center\" class=tdc2>0755</TD>"+
    "</TR>"+
    "<TR class=tdc bgcolor=#EFF1F3>"+
    "<TD align=\"center\">邮 编</TD>";

    str = str.replaceAll("<!--.*?-->","");//先把<!---->这里面的东西去掉
    Matcher m = Pattern.compile("(?is)<td.*?>您查询的手机号码段</td>.*?<td.*?>(.*?)</td>.*?<td.*?>卡号归属地</td>.*?<td.*?>(.*?)</td>.*?<td.*?>卡&nbsp;类&nbsp;型</td>.*?<td.*?>(.*?)</td>").matcher(str);
    if(m.find()){
    System.out.println(m.group(1)+","+m.group(2)+","+m.group(3));
    }
    }
      

  2.   

    从 jsoup.org 下载 jsoup
    Document document = Jsoup.connect("http://www.ip138.com:8080/search.asp")
        .data("action","mobile")
        .data("mobile","15820420875")
        .timeout(3000).
        post();
    Elements elements = document.select(".tdc2");
    for(Element element : elements){
        System.out.println(element.text());
    }
    结果
    15820420875
    广东 深圳
    移动动感地带卡
    0755
    518000 更详细的..
      

  3.   

    十分感谢3楼的goldenfish1919
    ,问题可以了,谢谢你!还有各位热心回复解答的朋友