Intereting Posts
Как отключить поддержкуFinishAfterTransition при выходе из действия Подключить устройство USB к эмулятору Android? Автономный тестовый проект для проекта библиотеки на Android Не удается показать устройство Android в ubuntu 13.04 Совместите справа от экрана с маркой Android Android записывать на диск ненадежный – файл file.length! = Expected.length Закрепление файлов и папок в android Преобразование строки в формат timestamp MySQL в php Как просмотреть пользовательскую программную клавиатуру во время нажатия на EditText в android? Отфильтровывать не запускаемые приложения при получении всех установленных приложений Почему Android ищет ресурсы QVGA в неправильном порядке mdpi> hdpi> ldpi? Использование libpd в Android Studio Запуск нескольких Android-эмуляторов с разными номерами телефонов CardView layout_margin не работает Динамическое изменение высоты строки в списке в зависимости от количества элементов списка.

Поиск подстроки между определенными символами с неизвестным индексом

У меня есть строка, такая как:

<div class="photo-box biz-photo-box pb-60s"> <a href="/biz/the-kerry-piper-willowbrook"> <img class="photo-img" alt="" height="60" src="http://s3-media3.ak.yelpcdn.com/bphoto/rCz-uF_qwqyb5Nnq74JeVQ/60s.jpg" width="60"> </a> 

Как я могу получить URL-адрес

 http://s3-media3.ak.yelpcdn.com/bphoto/rCz-uF_qwqyb5Nnq74JeVQ/60s.jpg 

Из этой строки?

Я думал о string.indexOf (), но количество символов до и после URL может меняться, поэтому я не знаю, по какому индексу эта подстрока начинается, и это может быть беспорядочно. Любой лучший подход?

Используйте Jsoup для очистки / разбора HTML из URL , файла или строки и использования его синтаксиса jQuery, например селектора.

 String htmlStr="<div class=\"photo-box biz-photo-box pb-60s\">" + "<a href=\"/biz/the-kerry-piper-willowbrook\">" + "<img class=\"photo-img\" alt=\"\" height=\"60\" src=\"http://s3-media3.ak.yelpcdn.com/bphoto/rCz-uF_qwqyb5Nnq74JeVQ/60s.jpg\" width=\"60\">" + "</a>"; org.jsoup.nodes.Document doc=org.jsoup.Jsoup.parse(htmlStr); String src=doc.select("img").attr("src"); System.out.println(src); 

Если вы не хотите использовать парсер HTML, вы можете создать регулярное выражение и использовать пакет регулярных выражений, чтобы он соответствовал только тем данным, которые вам нужны.

Что-то вроде,

 Pattern pattern = Pattern.compile("<img.*?src=\"([^\"]+)\"",Pattern.CASE_INSENSITIVE); Matcher m = pattern.matcher(data); while(m.find()) { srcUrl = m.group(1)); }