java使用正则表达式提取xml多个标签的内容

比如有这样一个XML字符串:XXXXXX<text>aabbccdd</text><text>eeffgghh</text>XXXXXX我希望用正则表达式将aabbccd... 比如有这样一个XML字符串:
XXXXXX<text>aabbccdd</text><text>eeffgghh</text>XXXXXX
我希望用正则表达式将aabbccdd和eeffgghh都提取出来,怎样可以做到?
P.S 我在网上找了一个方法(见下面的链接),好像只能提出aabbccdd,后面一组就得不到了
参考资料:http://zhidao.baidu.com/question/50225818.html
代码如下:
import java.util.regex.Matcher;import java.util.regex.Pattern;
public class XMLTester {
public static void main(String[] args) {
String xml = "XXXXXX<text>aabbccdd</text><text>eeffgghh</text>XXXXX";

String regex = "<text>([^</text>]*)";
Pattern pattern = Pattern.compile(regex);
Matcher matcher = pattern.matcher(xml);

if(matcher.find()) {

System.out.println("\n【html匹配成功】");
System.out.println(matcher.group(1));
//System.out.println(matcher.group(2)); //这一句不能写,一写就报错

} else {

System.out.println("\n【html匹配失败】");
}
}}

输出:

看,eeffgghh没有出来
展开
 我来答
Anson0370
推荐于2018-04-19 · TA获得超过1462个赞
知道小有建树答主
回答量:702
采纳率:100%
帮助的人:700万
展开全部
如果你的文本严格就是那种格式的 那么
String regex = "<text>(.+)</text><text>(.+)</text>";
试试这个
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
晴旰
2020-02-18
知道答主
回答量:15
采纳率:0%
帮助的人:4.6万
展开全部
if(matcher.find())
换成while(matcher.find())
这不就循环出来所有的了。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
原来的我MsF
2013-01-15 · TA获得超过181个赞
知道小有建树答主
回答量:141
采纳率:75%
帮助的人:82.3万
展开全部
System.out.println(matcher.groupCount()); 可以看出 你其实只读到了一个 groupcount =1
追问
我刚刚试了一下的确是这样,有办法么,怎么样让它都匹配出来呢?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友bd75426
2013-01-15 · TA获得超过212个赞
知道小有建树答主
回答量:232
采纳率:100%
帮助的人:52.3万
展开全部
按你参考的不会漏掉后一组的,只要满足text就能获取到
会debug么?便运行变debug比较好懂原因。
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式