日期:2014-05-20  浏览次数:20688 次

正则表达试问题,帮帮我啊,在线等
以下是我用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>

------解决方案--------------------
正则表达式可以吗??表示怀疑,关注一下啊

------解决方案--------------------
正则表达式是用来处理有规律的字符串的,你的数据有规律吗?
------解决方案--------------------
貌似比较艰难,不过看html代码还是有些规律的,奈何对正则表达式不熟悉,顶一下吧
------解决方案--------------------
MM_swapImage( 'Image6 ', ' ', 'aaaaaaaaaaa ',1) 

这里面的aaaaaaaaaaa也算????
------解决方案--------------------
表达式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完成的基础上寻找。

初学正则表达式。望个位高手指点。呵呵
------解决方案--------------------
[href|src]
------解决方案--------------------
Java code

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));
        }
    }