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