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

正则截取<!--开头-->结果的部分并替换
要求很简单,
正则截取<!--开头-->结果的部分并替换
用<p></p>这样的截取已经实现了,没问题,

 String html="kk<p>123456</p>ssss";
List<String> resultList = new ArrayList<String>();
Pattern p = Pattern.compile("<p>([^</p>]*)");//匹配<p>开头,</p>结尾的文档
Matcher m = p.matcher(html );//开始编译
 while (m.find()) {
   resultList.add(m.group(1));//获取被匹配的部分
}
return resultList;

但是截取<!--开头,-->结尾的时候出现了问题。
我尝试过,下面的方式
List<String> resultList = new ArrayList<String>();
Pattern p = Pattern.compile("<!--([^-->]*)");//匹配<p>开头,</p>结尾的文档
Matcher m = p.matcher(html );//开始编译
 while (m.find()) {
   resultList.add(m.group(1));//获取被匹配的部分
}
return resultList;[/code]
好像不行,应该怎么写呢?

------解决方案--------------------
原来代码也是错的,你试试<p>ppppp</p>
String regex = "<!--(.*?)-->";

不过,如果是很大的文本,还是建议直接用indexOf, substring

------解决方案--------------------
"<!--(.*?)-->"就可以了
------解决方案--------------------
你原来<p>([^</p>]*)的正则也是错的你只要在<p></p>中间出现< / p >这样的字符就不行了。
String regex="<p>(.*?)</p>";匹配<p>开头和</p>结尾
String regex="<!--(.*?)-->";匹配<!--开头-->结尾