Как использовать функцию регулярного выражения для удаления всех тегов html, включая то, что внутри, например, имя класса и т. Д. c? - PullRequest
0 голосов
/ 28 января 2020

Например, у меня есть текстовый файл с

<p class="className" style="background-color:black">Hello World</p>

, он должен дать мне вывод:

Hello World

Ответы [ 2 ]

1 голос
/ 28 января 2020

Вы можете сделать следующее:

import re
text = '<p class="className" style="background-color:black">Hello World</p>' 
print(re.findall(r'\<.+\>(.+)\<\/.+\>', text)) # ['Hello World']

Пример с таблицей:

Предположим, что у вас есть такая таблица:

table = '''
<table>
    <thead>
        <tr>
          <th>Head 1</th>
          <th>Head 2</th>
          <th>Head 3</th>
          <th>Head 4</th>
        </tr>
    </thead>
    <tbody>
        <tr>
          <td>data 1</td>
          <td>data 2</td>
          <td>data 3</td>
          <td>data 4</td>
        </tr>
    </tbody>
</table>
'''

Вы можете сделать рядом с получить все данные из тегов td:

print(re.findall(r'\<td.*\>(.+)\<\/.+\>', table)) # ['data 1', 'data 2', 'data 3', 'data 4']

Надеюсь, это понятно, или вы можете использовать разные библиотеки, которые предоставляют API для работы с html, например, BeatufulSoup, l xml

1 голос
/ 28 января 2020

Лучше использовать XML парсер :

import xml.etree.ElementTree as ET

s = '<p class="className" style="background-color:black">Hello World</p>'
root = ET.fromstring(s)
output = root.text
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...