Страницы

Поиск по вопросам

пятница, 15 февраля 2019 г.

Как при помощи регулярных выражений получить часть текста

Есть входная строка:
String input = " 2777461-1

Стол: 1 < /td>";
Pattern pattern = Pattern.compile("\\+?(.*)"); Matcher matcher = pattern.matcher(input); while (matcher.find()) { System.out.println(matcher.group()); }
необходимо создать из этой строки 3 переменные
code = 2777461-1
furniture = Стол
count = 1
ошибок нет, но и даже code не удалось получить результат:
2777461-1
Может я ошибаюсь и регулярными выражениями такое не решается?


Ответ

Самый обычный вариант - использовать парсер, к примеру, jsoup. В вашем случае способ получить данные из документа будет выглядеть так:
String input = " " + "2777461-1" + "

" + "" + "Стол: " + "

1

" + " " + ""; Document html = Jsoup.parse(input);
String strong = html.body().getElementById("strong").text(); String furniture = html.body().getElementById("furniture").text(); String count = html.body().getElementById("count").text();
Изучайте библиотеку, у нее есть масса способов парсинга html-документов.
Ремарка: для доступа к данным проще использовать id, который вы назначаете на нужный тэг. К примеру, если в документе будет 2 тэга , то по id вытащить строку будет оптимальнее (я подправил ваш исходный html, обратите на это внимание).

Комментариев нет:

Отправить комментарий