在python中使用re.sub()来替换html代码

时间:2014-12-22 08:41:54

标签: python regex str-replace

我想对我的html代码进行细微更改以进行一些格式化。如果我在python字符串中有以下代码,我如何使用re.sub()函数根据我的要求替换行。例如。在这种情况下,我试图在我的桌子上添加边框。

<body><table>
<tbody>
    <tr>
        <th>X</th>
        <th>Y</th>
    </tr>
</tbody>
</table></body>

我想将上面的代码转换成这样的代码:

<body><table border=1>
<tbody>
    <tr>
        <th>X</th>
        <th>Y</th>
    </tr>
</tbody>
</table></body>

3 个答案:

答案 0 :(得分:2)

请勿使用re.sub,这就是我们BeautifulSoup的原因。

pip install beautifulsoup4

然后

from bs4 import BeautifulSoup

html = 'your_html_here'
soup = BeautifulSoup(html)

现在,您可以提取,修改,添加,删除和操作您想要的任何内容。

答案 1 :(得分:2)

如前所述,使用BeautifulSoup。

from bs4 import BeautifulSoup

html = BeautifulSoup("<table></table>", "html.parser")
table = html.find('table')
table.attrs['border'] = 1

html现在看起来像<table border="1"></table>

在上面的示例中,我只有一个表元素,如果您有多个表元素,则可以迭代所有表元素。

获取字符串(不是BeautifulSoup元素):html.prettify(formatter="html")

答案 2 :(得分:1)

print re.sub(r"(<table)",r"\1 border=1",test_Str)

试试这个。看看演示。

https://regex101.com/r/vN3sH3/55