如何使用regex函数删除所有html标记,包括其中的内容,如类名等?

2024-04-24 09:17:06 发布

您现在位置:Python中文网/ 问答频道 /正文

例如,我有一个带有

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

它应该给我一个输出:

Hello World

2条回答

接下来,您可以执行以下操作:

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']

我希望这是清楚的,或者您可以使用不同的libs来提供用于处理html的api,比如BeatufulSoup、lxml

最好使用XML parser

import xml.etree.ElementTree as ET

s = '<p class="className" style="background-color:black">Hello World</p>'
root = ET.fromstring(s)
output = root.text

相关问题 更多 >