我用java.util.regex.Pattern取网页文件中超连接内容,就是<a href和</a>之间的东西~
表达式
Pattern p=Pattern.complie("^<a.*</a>$",Pattern.MUTILINE);
String str[]=p.split(text);
text的内容:
<link href="/zh_cn/css0801/style.css" rel="stylesheet" type="text/css" media="all" />
<script src="/zh_cn/js0801/function.js" type="text/javascript"></script>
<script type="text/javascript" src="http://dvsend.china.com/js/chinaadclient.js" charset="utf-8">//ADCRM</script>
<a href="http://dvsend.china.com/cc/003CFhttp://www.pfb09.net/" target="_blank">白斑病牛皮顽癣康复网</a>
</head>
大家都看到了,里面有一行是匹配的~
而且我在regexTester里也测试通过,能取到正确结果.
str[]的结果很奇怪,其他都在,独独缺了正确的那一行~~
===
请高手指点~
另:
如果href那行被断行了,我的表达式怎么写?
^<a[.*\n\r]</a>$
??

解决方案 »

  1.   

    感谢二楼的提醒,虽然用你的方法没得到结果.
    测试通过的表达式:
    String pattern="^<a.*[\\r\\n]*.*</a>$";
    分解下:
    ^<a =以<a开头
    .* =后面可以跟任意字符(不含回车等)
    [\\n\\r]* =后面可以跟0或多个\r或\n
    .* =后面再跟任意字符
    </a>$ =以</a>$结尾第一个问题:
    得此贴提醒:http://topic.csdn.net/u/20090306/20/cf749d49-7785-4bb2-b8e5-1116adee4eb2.html
    Matcher mtr=part.matcher(this.fileContext.toString());
    while(mtr.find())
    System.out.println(mtr.group());