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没有出来 展开
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没有出来 展开
4个回答
展开全部
如果你的文本严格就是那种格式的 那么
String regex = "<text>(.+)</text><text>(.+)</text>";
试试这个
String regex = "<text>(.+)</text><text>(.+)</text>";
试试这个
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
if(matcher.find())
换成while(matcher.find())
这不就循环出来所有的了。
换成while(matcher.find())
这不就循环出来所有的了。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
System.out.println(matcher.groupCount()); 可以看出 你其实只读到了一个 groupcount =1
追问
我刚刚试了一下的确是这样,有办法么,怎么样让它都匹配出来呢?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
按你参考的不会漏掉后一组的,只要满足text就能获取到
会debug么?便运行变debug比较好懂原因。
会debug么?便运行变debug比较好懂原因。
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询