擅长:python、mysql、java
<p>BeautifulSoup在这里不是一个好主意-它是为解析HTML而设计的,而不是编辑它。你知道吗</p>
<p>而且,regex看起来不是一个很好的正则表达式(只匹配<em>标记中的内容,而不是整个标记本身),所以我找到了一个更适合您的目的的正则表达式:</p>
<pre><code></?\w+((\s+\w+(\s*=\s*(?:".*?"|'.*?'|[\^'">\s]+))?)+\s*|\s*)/?>
</code></pre>
<p>此标记将匹配以下内容:</p>
<pre><code><h1>
</h1>
<img src="foo.com/image.png">
</code></pre>
<p>我们可以使用<code>re.sub</code>替换所有标记。这将查找某个正则表达式的所有匹配项,并用其他内容替换它们。以下是您如何将其用于您想做的事情:</p>
<pre><code>import re
html_regex = r"""</?\w+((\s+\w+(\s*=\s*(?:".*?"|'.*?'|[\^'">\s]+))?)+\s*|\s*)/?>"""
html = "<h1>Foo</h1>"
print(re.sub(html_regex, "@", html))
</code></pre>
<p>这将打印:</p>
<pre><code>@Foo@
</code></pre>