以下是我用java读取的一段HTML代码,希望能够通过标记<!--pic1-->读取里面的aaaaaaaaaaa.cccccccccccc.bbbbbbbbbbb,这是一些路径,
我知道正则表达式能实现这样的功能,但对我来说太复杂,希望大家帮帮我<TR>
    <TD>
<!--pic1--><a onMouseOver="MM_swapImage('Image6','','aaaaaaaaaaa',1)" onFocus="this.blur()" onMouseOut="MM_swapImgRestore()" target="_blank" href="cccccccccccc"><IMG height=164 src="bbbbbbbbbbb" width=156 border=0 name=Image6></a><!--pic11-->
    </TD>
    <TD>
        <!--pic2--><a onMouseOver="MM_swapImage('Image7','','aaaaaaaaa',1)" onFocus="this.blur()" onMouseOut="MM_swapImgRestore()" target="_blank" href="aaaaaaaaa"><IMG height=164 src="aaaaaaaaa" width=156 border=0 name=Image7></a><!--pic22-->
    </TD>
</TR>

解决方案 »

  1.   

    我通过java 能获取标记内的内容,这个正则怎么写,期待大家的出现
    htmlContent.substring(htmlContent.indexOf("<!--pic1-->") + 11,htmlContent.indexOf("<!--pic11-->"));
      

  2.   

    貌似比较艰难,不过看html代码还是有些规律的,奈何对正则表达式不熟悉,顶一下吧
      

  3.   

    MM_swapImage( 'Image6 ', ' ', 'aaaaaaaaaaa ',1) 这里面的aaaaaaaaaaa也算????
      

  4.   

    表达式1 : <!--pic1-->\s*(<a\s+\w+\s*=\s*"[^>]*"\s*>)\s*(<IMG\s+\w+\s*=\s*"?[^>]*"?\s*>)\s*</a>\s*<!--pic11-->  找出<!--pic1--><!--pic11>内的内容
    表达式2:MM_swapImage\(\s*[^\)]*,[^\)]*,([^\)]*),[^\)]*\s*\)\s  找出MM_swapImage函数里的参数group 1
    表达式3:[href|src]\s*=\s*"([\w]*)\s*"  找出href或src属性的值。
    表达式2,3要在表达式1完成的基础上寻找。初学正则表达式。望个位高手指点。呵呵
      

  5.   

    能实现,但是你写的反正我是没怎么看懂。如果需要用正则表达式来解决问题,在提问时应该把所有的要求说得越详细越好,
    越详细写出来的表达式越能满足要求。比如,在你的问题中:1,路径是不是全都是按照 img MM_swapImage、a href、img src 顺序的,如果这个条件
          不满足那就没办法使用正则表达式来完成。
    2,<!--pic1--> ... <!--pic11--> 之间的东西是不是全都是一种模式的,如果不是也没
          办法做。
    3,<!--pic1--> ... <!--pic11--> pic 的格式:1 开始,就用 11 结束,如果 10 开始
          用啥结束,用 1010?
      

  6.   


    public static void testRegex(){
    String source = "<TR> " + 
            "        <TD> " + 
            "<!--pic1--> <a   onMouseOver= \"MM_swapImage( 'Image6 ', ' ', 'aaaaaaaaaaa ',1) \"   onFocus= \"this.blur() \"   onMouseOut= \"MM_swapImgRestore() \"   target= \"_blank \"   href= \"cccccccccccc \"> <IMG   height=164   src= \"bbbbbbbbbbb \"   width=156   border=0   name=Image6> </a> <!--pic11--> " + 
            "        </TD> "+
            "        <TD> "+
            "               <!--pic2--> <a   onMouseOver= \"MM_swapImage( 'Image7 ', ' ', 'aaaaaaaaa ',1) \"   onFocus= \"this.blur() \"   onMouseOut= \"MM_swapImgRestore() \"   target= \"_blank \"   href= \"aaaaaaaaa \"> <IMG   height=164   src= \"aaaaaaaaa \"   width=156   border=0   name=Image7> </a> <!--pic22--> "+
            "        </TD> "+
            "</TR>";

    String regex = "<!--pic1--> <a.*?\"MM_swapImage.*?', ' ', '(.*?)'.*?href= \"(.*?)\"> <IMG.*?src= \"(.*?)\"   width.*?</a> <!--pic11-->";
    Pattern p = Pattern.compile(regex, Pattern.DOTALL + Pattern.MULTILINE);
    Matcher m = p.matcher(source);
    while (m.find()){
    System.out.println(m.group(1));
    System.out.println(m.group(2));
    System.out.println(m.group(3));
    }
    }
    取出所有url:
    String regex = "<a.*?\"MM_swapImage.*?', ' ', '(.*?)'.*?href= \"(.*?)\"> <IMG.*?src= \"(.*?)\"   width.*?</a>";
    取出<!--pic1-->段的url:
    String regex = "<!--pic1--> <a.*?\"MM_swapImage.*?', ' ', '(.*?)'.*?href= \"(.*?)\"> <IMG.*?src= \"(.*?)\"   width.*?</a> <!--pic11-->";
    取出<!--pic2-->段的url:
    String regex = "<!--pic2--> <a.*?\"MM_swapImage.*?', ' ', '(.*?)'.*?href= \"(.*?)\"> <IMG.*?src= \"(.*?)\"   width.*?</a> <!--pic12-->";