LINUX.ORG.RU

ruby: очистить текст от тегов


0

0

Есть текст замусоренный тегами вида <блабла>...</блабла>, не обязательно реально существующие HTML-ные, но такого же вида. Нужен универсальный способ очистить произвольный текст от этих тегов. Искать паттерны наподобие /<(.+?)>/ как-то некрасиво, придётся «пробегать» текст несколько раз чтобы вычистить вложенные теги. Как лучше такое сделать?


html = "<html><head><title>Test title</title></head><body><h1>Test</h1></body></html>"
html.gsub!(/<[a-zA-Z\/][^>]*>/,"")
puts html

Чем вам не нравится регексп?

edigaryev ★★★★★
()
Ответ на: комментарий от edigaryev

Если там есть атрибуты, то будут пробелы и кавычки, и, возможно, экранированные символы. Уверен, что твоего варианта хватит? :}

Deleted
()
Ответ на: комментарий от edigaryev

Собственно всем нравится, спасибо. :) Просто изначальная идея с поиском пар тегов сбила с толку.

tx
() автор топика
Ответ на: комментарий от tx

Чуть допилил, а то оно возбуждалось на одиночную угловую скобку и не убирало кое-что другое:

gsub!(/(<[a-zA-Z\/\#][^>]*>)?/,"")

tx
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.