Страницы

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

понедельник, 30 марта 2020 г.

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

#java #регулярные_выражения #строки


Есть входная строка:

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 Может я ошибаюсь и регулярными выражениями такое не решается?


Ответы

Ответ 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, обратите на это внимание).

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

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