Мне нужно регулярное выражение, которое не выделяет теги, а содержит текст внутри тегов.
Вы не найдете его.Не тот, который полностью надежен против любого легального / дикого HTML.
Простая причина в том, что регулярные выражения соответствуют регулярным языкам , а HTML даже удаленно не является регулярным языком.
Даже если вы очень осторожны, вы рискуете заменить вещи, которые вам не нужны, и не заменять вещи, которые вы хотели, просто из-за того, насколько сложным может быть синтаксис HTML.
Правильный способ синтаксического анализа HTML - это использование специального синтаксического анализатора HTML DOM.
К сожалению, CF не имеет встроенного, хотя, если ваш HTML - XHTML, вы можете использовать XmlParse и XmlSearch , чтобы позволить xpath искать только текст (не теги), который соответствует вашему тексту ... что-то вроде //*[contains(text(), 'span')]
должно делать ( подробнее здесь).
Если у вас нет XHTML, вам нужно рассмотреть возможность использования HTML DOM-парсера для Java - Google находит много, (я еще не пробовал, поэтому могу 'дать конкретные рекомендации).