Задать вопрос
Malodar
@Malodar
Начинающий питонист

Как найти html тэги в txt файле?

Добрый день! Помогите с такой проблемой. Есть txt файл, в котором есть как простой текст, так и несколько таблиц в виде <table> ... </table>. В качестве примера:

"
ACCESSION NUMBER:		0000796343-18-000015
CONFORMED SUBMISSION TYPE:	10-K
PUBLIC DOCUMENT COUNT:		109
CONFORMED PERIOD OF REPORT:	20171201
FILED AS OF DATE:		20180122
DATE AS OF CHANGE:		20180122

<table id=1>
    <tr>
        <td>Some Text</td>
    </tr>
</table>

<table id=2>
    <tr>
        <td>Some Text</td>
    </tr>
</table>
"

Как мне извлечь эти таблицы из текста (т.е. сами тэги table с содержимым)? Полагаю, что с помощью regexp и re.findall, но не могу составить правильное выражение... Помогите, пожалуйста.
  • Вопрос задан
  • 216 просмотров
Подписаться 2 Простой 4 комментария
Решения вопроса 1
DDDsa
@DDDsa
Если любой тег, то вот так:
r'<(\w+)([\s\S]+?)<\/\1>'
При этом вернётся два значения, тег и его содержимое:
>>> tables = re.findall(r'<(\w+)([\s\S]+?)<\/\1>', s)
>>> tables
[('table', ' id=1>\n    <tr>\n        <td>Some Text</td>\n    </tr>\n'), ('table', ' id=2>\n    <tr>\n        <td>Some Text</td>\n    </tr>\n')]


Если нужно вытаскивать только тег table (или других точно не будет), тогда вот так:
r'<table([\s\S]+?)<\/table>'

Пример:
>>> tables = re.findall(r'<table([\s\S]+?)<\/table>', s)
>>> tables
[' id=1>\n    <tr>\n        <td>Some Text</td>\n    </tr>\n', ' id=2>\n    <tr>\n        <td>Some Text</td>\n    </tr>\n']
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
Taraflex
@Taraflex
Ищу работу. Контакты в профиле.
Оберните весь текст в <body>
Дальше https://stackoverflow.com/questions/3051295/jquery...
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы