如何替换html标签但将文本保留在两者之间?

Posted

技术标签:

【中文标题】如何替换html标签但将文本保留在两者之间?【英文标题】:How to replace html tags but keep the text in between? 【发布时间】:2019-08-27 18:40:09 【问题描述】:

我想将文本保留在 span 标签之间。但是替换表达式有问题...

我正在使用 Calibre 文本编辑器。

    Find:
    <span class="Heading3-strong">(.*?)</span>
    Replace:
    <strong>(.*?)</strong>

    Input:
    <span class="Heading3-strong">some text goes here</span>
    Output:
    <strong>some text goes here</strong>

【问题讨论】:

请在您说“替换表达式”时添加更多上下文。 即使是“不推荐”,我还是要用Regex。 您能提供更多信息吗?您使用什么工具来运行查找和替换 - 一些文本编辑器,一些编程语言?输入是什么?预期的输出是什么? 替换错误,应该是&lt;strong&gt;\1&lt;/strong&gt; 尝试 \1 而不是 Wiktor 建议的 $1。 \1 是一个常见的反向引用,用于引用您的 find (.*?) 中定义的捕获组 【参考方案1】:

替换模式不能是正则表达式,它是一个普通字符串,可能包含\n形式的反向引用,其中n是组ID(它们从1开始)。

所以,在你的情况下,你需要使用

<strong>\1</strong>

其中\1 是与(.*?) 匹配的文本。

查看更多信息here。

【讨论】:

以上是关于如何替换html标签但将文本保留在两者之间?的主要内容,如果未能解决你的问题,请参考以下文章

如何用空白替换文本中提取的 HTML 标签?

如何在BeautifulSoup中的标签之间替换文本?

Bump 版本并从一个分支发布包,但将标签保留在另一个分支中

从图像中删除边框,但将文本保留在边框上(OCR 之前的预处理)

如何使用 Notepad++ 查找和替换 <wp:postmeta> </wp:postmeta> 标签之间的文本

如何在节点中的文本中替换/注入html标签?