получить текст между тегами HTML - PullRequest
0 голосов
/ 18 января 2010

Возможный дубликат: RegEx, соответствующий тегам HTML и извлечению текста

Мне нужно получить текст между тегом html, например <p></p> или чем-то еще.Мой шаблон такой:

Pattern pText = Pattern.compile(">([^>|^<]*?)<");

Кто-нибудь знает какой-то лучший шаблон, потому что этот шаблон не очень полезен.Мне это нужно для индексации контента с веб-страницы.

Спасибо

Ответы [ 3 ]

5 голосов
/ 18 января 2010

ТАК вот-вот сойдет на тебя. Но позвольте мне сказать первым: не используйте регулярные выражения для разбора HTML. Здесь - список Java-парсеров HTML. Посмотрите вокруг, пока не увидите API, который подходит вам и используйте его вместо этого.

3 голосов
/ 18 января 2010

Похоже, вы пытаетесь использовать оператор | внутри отрицательного набора, который не работает и не нужен. Просто укажите символы, которые вы не хотите сопоставлять:

Pattern pText = Pattern.compile(">([^<>]*?)<");
2 голосов
/ 18 января 2010

Не используйте регулярные выражения при разборе HTML.

Вместо этого используйте XPath (если ваш HTML хорошо сформирован).Вы можете очень просто ссылаться на текстовые узлы, используя функцию text().

...