извлечь строку с помощью Java StringTokenizer, сплит или сканер - PullRequest
0 голосов
/ 24 января 2012

Я хочу извлечь строку между <a: href> и </a: href> из следующего:

<a: href> https://0.0.0.1/abcd/openthis.pdf </a: href>

с использованием StringTokenizer, split или scanner.
Я пытаюсь использовать StringTokenizer с <a: href> и </a: href> в качестве разделителей, но он не работает. Я пытался сбежать <, > и :, но, похоже, это не проблема. Я предполагаю, что он не примет слово или фразу в качестве разделителя.

1 Ответ

0 голосов
/ 24 января 2012

Вы можете попробовать Regex .

Попробуйте это регулярное выражение >\s+(.*?)\s+<'.

Пожалуйста, имейте в виду, что решение для регулярного выражения будет работать, только если вы извлекли эту строку

< a: href > https://0.0.0.1/abcd/openthis.pdf < /a: href>

В общем случае используйте html parsers для извлечения текста из соответствующего HTML-кода.

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

Iдаст htmlcleaner попытку.

HTMLCleaner - это библиотека Java, используемая для безопасного анализа и преобразования любого найденного в Интернете HTML-кода в правильно сформированный XML.Это разработано, чтобы быть маленьким, быстрым, гибким и независимым.HtmlCleaner может использоваться в коде Java, как инструмент командной строки или как задача Ant.Результатом разбора является облегченная объектная модель документа, которую можно легко преобразовать в стандарты, такие как DOM или JDom, или различными способами сериализовать в вывод XML (компактный, довольно печатный и т. Д.).

Вы можете использоватьXPath с htmlcleaner для получения содержимого в тегах xml / html. Вот хороший
пример Пример Xpath

...