我想解析具有特定模式的字符串。有效字符串示例如下:正则表达式或字符串解析
<STX><DATA><ETX>
<STX>A?123<ETX>
<STX><DATA><ETX>
<STX>name!xyz<ETX>
<STX>age!27y<ETX>
<STX></DATA><ETX>
<STX>A?234<ETX>
<STX><DATA><ETX>
<STX>name!abc<ETX>
<STX>age!24y<ETX>
<STX></DATA><ETX>
<STX>A?345<ETX>
<STX><DATA><ETX>
<STX>name!bac<ETX>
<STX>age!22y<ETX>
<STX></DATA><ETX>
<STX>OK<ETX>
<STX></DATA><ETX>
此数据由设备发送。我所需要的是解析这个字符串的id:123名称:xyz,年龄27岁。
我试图用这个表达式:
最终格局正则表达式= Pattern.compile(,Pattern.DOTALL “(*)?”)
这并输出所需要的数据:
<ETX>
<STX>A?123<ETX>
<STX><DATA><ETX>
<STX>name!xyz<ETX>
<STX>age!27y<ETX>
<STX>
我怎样才能循环串递归复制所有到字符串列表。 我想循环并删除提取的模式,但它不会删除。
final Pattern regex = Pattern.compile("<DATA>(.*?)</DATA>", Pattern.DOTALL);// Q?(.*?)
final StringBuffer buff = new StringBuffer(frame);
final Matcher matcher = regex.matcher(buff);
while (matcher.find())
{
final String dataElements = matcher.group();
System.out.println("Data:" + dataElements);
}
}
是否有任何无法做到这一点的方法。
这是我目前得到的输出:
Data:<DATA><ETX><STX>A?123<ETX><STX><DATA><ETX><STX>name!xyz<ETX><STX>age!27y<ETX><STX> </DATA>
Data:<DATA><ETX><STX>name!abc<ETX><STX>age!24y<ETX><STX></DATA>
Data:<DATA><ETX><STX>name!bac<ETX><STX>age!22y<ETX><STX></DATA>
我缺少在接下来的两场比赛将A 234和A 345?。
** ** PACK?....,你想与string..your问题做什么做的是不清楚.. – Anirudha 2013-02-12 17:20:01
...或XML解析? – maerics 2013-02-12 17:21:46
您提供的字符串上应用的模式'(。*?)'怎么会返回这样的输出?这真的不清楚。尝试应用[SSCCE](http://sscce.org/)概念。 – sp00m 2013-02-12 17:22:56