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

比如有这样一个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没有出来

第1个回答  推荐于2018-04-19
如果你的文本严格就是那种格式的 那么
String regex = "<text>(.+)</text><text>(.+)</text>";
试试这个本回答被网友采纳
第2个回答  2020-02-18
if(matcher.find())
换成while(matcher.find())
这不就循环出来所有的了。
第3个回答  2013-01-15
System.out.println(matcher.groupCount()); 可以看出 你其实只读到了一个 groupcount =1追问

我刚刚试了一下的确是这样,有办法么,怎么样让它都匹配出来呢?

第4个回答  2013-01-15
按你参考的不会漏掉后一组的,只要满足text就能获取到
会debug么?便运行变debug比较好懂原因。本回答被提问者采纳

Java中怎样用正则表达式获取metal标签里content里的内容?
如果要用正则的话,String re = "content=[\\\\"']?([^\\\\"'>]+)[\\\\"']?";String str = ""+""+""+""; Pattern p = Pattern.compile(re);Matcher m = p.matcher(str);\/\/ Read the docs on how to use the matcher object ...

如何用正则表达式在一字符串中搜取多个有一定格式的字串?
如果只是想得到一些html标签的内容信息就好办的多,可以尝试将字符串转化为xml文档对象类型来分析,那么以上字符串转化后可以得到5个元素,分别指向:aaa sdflskdfj bbbbbbbb 但我尝试用javascript的toString()转化成字符串不能成功,不过里面还有个属性HinnerHTML可以调用,如下测试程序段应该对理解有所帮...

有没有从多个XML文件中批量提取固定内容的工具
有呀,比如这款的,通过正则表达式来提取。第39项功能卡,选择自定义,并指定目标提取数据的正则表达式即可。

java里面如何截取两个关键字中间的字符串
你的例子之中可以把 <P>123241422132<\/P>看做一个xml, 用处理xml的方法来进行出来。如果只是像例子那样那么简单的句子,直接调用String里面的一些方法就可以处理了。public class Test { public static void main(String [] args) { String str = "<P>123241422132<\/P>";int beginIdx = str.ind...

按键精灵这段正则表达式要怎么写,这是用getuixml获取的内容,RegexFind...
正则:content-desc="(.+?)" 使用全局搜索

java 截取 xml(字符串)的子节点
你好,直接indexOf <task> 跟 <\/task> 然后subString一下都没问题.或者正则表达式 <task>(.*?)<\/task> 如果是一个长期的工程,量比较大的,考虑用dom4j来做吧.http:\/\/xhy0422.iteye.com\/blog\/50235 对于已经是字符串的xml,可以

求一正则表达式,或其他什么办法,把字符串中的注释去掉?
用Java正则表达式替换就行了.完整的程序如下:class tempt { public static void main(String[] args){ String s="<?xml version=\\"1.0\\" encoding=\\"GB18030\\"?><!--XML信息头,必填--><UFTP><MsgHdrRq><RefId>10318<\/RefId><!--系统参考号--><TrnCode>1602<\/TrnCode><!--交易代码-...

C# 正则表达式的使用,匹配多组数据,如何逐个提取?
用非贪婪模式的正则表达式 <ORG_CODE>[\\s\\S]*?<\/PARAMETER_VALUE> 就是比贪婪模式的正则表达式多了个问号 我给你个Java语言的例子,你看看吧 import java.util.regex.Matcher;import java.util.regex.Pattern;public class BB { public static void main(String[] args) { String reciveString="...

在Python中如何用正则表达式提取xml中的之间的内容
代码html_text = '''When ES cells differentiate, they migrate out from colonies on gelatin-coated dishes, similar to the ES cells on the <xref ref-type="bibr" rid="pone.0000015-Rogers1">[17]<\/xref> and <italic>nanog<\/italic> ,,<xref ref-type="bibr" rid="pone.0000015...

怎样用java代码提取嵌在中间的文本
用java的意思是把这段html代码传到了后台处理?那么你可以分析中间文本存在的规律啊,如果是固定格式那么可以substring固定的位数 可以给fontsize定义一个id然后java里找到这个id在字符串中的index+1,然后substring截取到它后面的

相似回答