如果我在这种情况下误解了 Regex 的使用,请提前道歉。
我想从字符串中检索重复的字段。有问题的字符串看起来像这样 -
TrendsJSONImpl{asOf=2013 年 3 月 8 日星期五 00:04:26 GMT,trendAt=2013 年 3 月 8 日星期五 00:04:26 GMT,>trends=[TrendJSONImpl{name='#TheBiggestLies', url='URL', query=' %23TheBiggestLies'}, TrendJSONImpl{name='#ICanHonestlySay', >url='URL', query='%23ICanHonestlySay'}, >TrendJSONImpl{name='#EuTenhoUmaQuedaPor', url='URL', query='%23EuTenhoUmaQuedaPor '}, >TrendJSONImpl{name='#CitePessoasExclusivamenteSuas', url='URL', 查询='%23CitePessoasExclusivamenteSuas'},
从这个字符串中,我想检索字段“名称”并将其添加到列表中。此字符串代表 Twitter 上的热门话题,每次调用生成它的方法时都会发生变化。
理想的输出是这样的 -
#最大的谎言
#ICan诚实地说
#CitePessoasExclusivamenteSuas
在此处之前的文章之后,我尝试使用以下代码提取名称字段 -
UI.model = new DefaultListModel();
String trendsInfo = //FUNCTIONWHICHRETRIEVESSTRING
Matcher m = Pattern.compile("{name=").matcher(trendsInfo);
Pattern p = Pattern.compile(
"{name='(.*),",
Pattern.DOTALL);
Matcher matcher = p.matcher(trendsInfo);
while (matcher.find()) {
for (int i = 0; i < 20; i++) {
String output = m.group(i);
UI.model.addElement(output);
System.out.println(m.group(i));
}
}
不幸的是,这返回了一个非法重复异常,我不确定如何处理同一字段的多个查询。在这件事上的任何帮助将不胜感激。
谢谢你的时间!