【发布时间】:2018-11-05 00:53:48
【问题描述】:
我正在尝试使用 re.sub() 将所有 html 标签 < 和 > 更改为 { 和 }。问题是:我只想更改<table 和</table> 之间的匹配。
我一生都找不到一个正则表达式教程或帖子,其中一个能够更改每个正则表达式匹配,但只能在其他两个正则表达式匹配之间。我看过正面/负面的前瞻和后视教程等,但没有运气。在决定发布之前已经进行了几个小时的搜索。
这是我目前为止最好的:
(?<=<table)(?:.*?)(<)(?:.*)(?=<\/table>)
这将匹配表格开始和结束标记之间的一个“
所有这一切的重点是,我有一个包含大量 HTML 的字符串,我想将所有 HTML 标记以及表格本身保留在表格中。
我目前的计划是将表格中的所有标签(以及表格标签本身)更改为 { 或 },然后删除整个文档中的所有 HTML 标签 ,然后将所有 { 和 } 更改回 。这样做应该保留表格(以及里面的任何其他标签)。
输入示例:
<font style = "font-family:inherit>
<any other HTML tags>
random text
<table cellpadding="0" cellspacing="0" style="font-family:times new
roman;font-size:10pt;width:100%;border-collapse:collapse;text-align:left;">
<tr>
<td colspan="3">
<font style="font-family:inherit;font-size:12pt;font-
weight:bold;">washington, d.c. 20549</font>
random text
<any other HTML tags within table tags>
</td>
</table>
random text
<font style = "font-family:inherit>
输出示例:
<font style = "font-family:inherit>
<any other HTML tags>
random text
{table cellpadding="0" cellspacing="0" style="font-family:times new
roman;font-size:10pt;width:100%;border-collapse:collapse;text-align:left;"}
{tr}
{td colspan="3"}
{font style="font-family:inherit;font-size:12pt;font-
weight:bold;"}washington, d.c. 20549{/font}
random text
{any other HTML tags within table tags}
{/td}
{/table}
random text
<font style = "font-family:inherit>
谢谢你, 熟食
【问题讨论】:
-
请举例说明你的html以及替换后你想要什么。
-
我刚刚使用示例输入和输出进行了编辑。谢谢你让我知道,我很感激。
标签: python regex regex-lookarounds