Привет всем! Подскажите как захватить все подстроки соответствующие шаблону и поместить их в какой-нить список, пусть это будет ArrayList<String>? Пробовал сделать так:
Код | public String[] getAllPicturesFor(int CarID) { // Здесь получаю текстовый файл из сети, в котором указаны ссылки на изображения. Содержимое файла заношу в StringBuilder // После чего strBuilder.toString() возвращает такую строку: // <picturelist><file><url>http://site.com/image.aspx?picture=10-1.jpg&size=400x300</url></file><file><url>http://site.com/image.aspx?picture=10- // 2.jpg&size=400x300</url></file><file><url>http://site.com/image.aspx?picture=10-3.jpg&size=400x300</url></file></picturelist> Pattern pattern = Pattern.compile("<url>(.*?)</url>"); Matcher matcher = pattern.matcher(strBuilder.toString());
while (matcher.find()) { photos.add(matcher.group()); }
return photos.toArray(new String[photos.size()]); }
|
Вринципе оно работает, но не совсем так. Проблема в том, что после выполнения этой программы ArrayList содержит все искомые URL вместе с тегами <url>...</url>, хотя из шаблона выше видно, что захват я делаю без них. Можно конечно удалить теги отдельно, но что-то мне подсказывает, что это я не совсем понимаю принцип работы регулярных выражений в Java. |