问题描述
请教各位高手个问题,我想要提取HTML帖子内容,非常感谢ostrichmyself大哥帮我解决了好多问题,但是还在有些地方出问题,比较急所以再发帖求助@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@<pclass="author"><strong>admin</strong>发表于2009-5-1416:49</p><h3>提取帖子内容</h3>“提取这句话”<br/><br/>“1提取作者admin:"<strong>(.+?)</strong>"2提取标题“提取帖子内容”:"<strong>(.+?)</strong>"3提取时间2009-5-1416:49:"发表于(.+?)</p>"我想把这三个正则组合在一起用group函数读出简单的:(<strong>(.+?)</strong>)(<strong>(.+?)</strong>)(发表于(.+?)</p>)会出错,因为group嵌套()会报错,不知道该如何写?还想问一下提取作者时admin时<pclass="author"><strong>admin</strong>要把<pclass="author">也写进去该怎么写?下面的程序不输出任何结果importjava.util.*;importjava.util.regex.Matcher;importjava.util.regex.Pattern;publicclassclasstest{publicstaticvoidmain(String[]args){test1();}publicstaticvoidtest1(){Stringsrc="<strong>admin</strong>"+"发表于2009-5-1416:49</p><h3>提取帖子内容</h3>";Stringregex="<strong>(.*)</strong>(.*)</p><h3>(.*)</h3>";Patternpattern=Pattern.compile(regex,Pattern.DOTALL);Matchermatcher=pattern.matcher(src);while(matcher.find()){System.out.println(matcher.group(1).trim());System.out.println(matcher.group(2).trim());System.out.println(matcher.group(3).trim());break;}}}
解决方案
解决方案二:
不会吧
解决方案三:
飘过~
解决方案四:
我这边可以呀!我在Eclipse下面编译的.还想问一下提取作者时admin时<pclass="author"><strong>admin</strong>要把<pclass="author">也写进去该怎么写?下面的程序不输出任何结果写进去做什么呢?你提取出来自己加一个<pclass="author">头就行了.或者你再搞一个Group提取<pclass="author">这些Group就变成四个了
解决方案五:
有个htmlparser包,下载下看看,可以省去编写正则表达式的烦恼
解决方案六:
多谢高手ostrichmyself,真不好意思,我又新建了一个Java工程跑通了,但是在原来的环境下的确不输出,正则表达挺麻烦的看网上的资料有些挺复杂的,上面我问的<pclass="author"><strong>admin</strong>要把<pclass="author">也写进去是因为<strong>(.*)</strong>还匹配到了多余的东东,要吧<pclass="author">也加如正则,但是"<pclass="author"><strong>(.*)</strong>(.*)</p><h3>(.*)</h3>";中报错提示<pclass="author"赋值的左边必须是变量”,不能直接写入,自己比较菜还不知道该怎么把它加入正则限制