大家好 我想问个关于正则式的问题  下面是原代码,想从当中提出某些内容:
<div id="main">
<h2>Madonna</h2>
<dl>
<dt>Website /dt>
<dd>
                     <a href="http://www.madonna.com/"  title="Go to the Madonna website">www.madonna.com </a>
</dd>
<dt id="artPhoto">Artist photo</dt>
<dd id="photo"><img src="images/madonna.jpg" alt="Madonna"  title="Madonna"/></dd>想提取当中 id=main的 "Madonna", "www.madonna.com "   和id="photo"的  madonna.jpg这张图片 请问用正则式的话  那表达式应该是怎样的? 请大家帮帮忙,因为刚第1天学正则式,所以比较迷茫, 如果大家关于正则式的好网站的话,麻烦也提供下给小弟多学习学习  谢谢

解决方案 »

  1.   

        String str = "<div id=\"main\">\n<h2>Madonna </h2>\n<dl>\n<dt>Website /dt>\n<dd>\n <a href=\"http://www.madonna.com/\"  title=\"Go to the Madonna website\">www.madonna.com  </a>\n</dd>\n<dt id=\"artPhoto\">Artist photo </dt>\n<dd id=\"photo\"> <img src=\"images/madonna.jpg\" alt=\"Madonna\"  title=\"Madonna\"/> </dd> ";
        Pattern p = Pattern.compile("<div id=\"main\">.*?<a href=\"http://(.*?)[/]?\".*?<img src=\"images/(.*?)\"", Pattern.DOTALL);
        Matcher m = p.matcher(str);
        while (m.find()) {
          System.out.println(m.group(1));
          System.out.println(m.group(2));
        }
      

  2.   


    //竹子露了一个,
    public static void main(String[] args) throws IOException, InterruptedException {
            String s = "<div id=\"main\">\n<h2>Madonna </h2>\n<dl>\n<dt>Website /dt>\n<dd>\n <a href=\"http://www.madonna.com/\"  title=\"Go to the Madonna website\">www.madonna.com  </a>\n</dd>\n<dt id=\"artPhoto\">Artist photo </dt>\n<dd id=\"photo\"> <img src=\"images/madonna.jpg\" alt=\"Madonna\"  title=\"Madonna\"/> </dd> ";
            Pattern p = Pattern.compile(
                "<div id=\"main\">\n<h2>(.*?)</h2>.*?<a href=\"http://(.*?)[/]?\".*?<img src=\"images/(.*?)\"",
                Pattern.DOTALL);
            Matcher m = p.matcher(s);
            while (m.find()) {
                System.out.println(m.group(1));
                System.out.println(m.group(2));
                System.out.println(m.group(3));
            }
        }