使用Regex查找超过1个字符串

时间:2013-03-30 11:29:01

标签: java regex

我实际上是java的新手,我很高兴我找到的正则表达式工作^^但现在我需要知道,如何获得超过1个字符串,最好的是如果所有都在数组中。其实我是这样做的:

Pattern p = Pattern.compile("name~(.*?)@");
Matcher m = p.matcher(response);

while (m.find()) {
     System.out.println("Found: " + m.group());
}

有人可以帮忙吗?

1 个答案:

答案 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~([^@]++)@");