我实际上是java的新手,我很高兴我找到的正则表达式工作^^但现在我需要知道,如何获得超过1个字符串,最好的是如果所有都在数组中。其实我是这样做的:
Pattern p = Pattern.compile("name~(.*?)@");
Matcher m = p.matcher(response);
while (m.find()) {
System.out.println("Found: " + m.group());
}
有人可以帮忙吗?
答案 0 :(得分:1)
您只需将结果放入List
:
final List<String> results = new LinkedList<>();
while (m.find()) {
results.add(m.group());
}
然后,您可以直接访问List
中的结果 - 如果您需要随机访问,请使用ArrayList
而不是LinkedList
。如果你需要一个数组,那么只需转换它
final String[] resultArr = results.toArray(new String[results.size()]);
如果你匹配String
中的多个项目,你可以通过匹配[^@]
并使其占有而不是使用不情愿的.*
Pattern p = Pattern.compile("name~([^@]++)@");