我想替换 HTML 标签但保留中间的文本。
查找:<span class="Heading3-strong">.*?</span>
替换:<strong>.*?</strong>
中间好像出了点问题……
答案1
答案2
我之前的帖子已被删除,所以让我再试一次,并提供更多详细信息。
说实话,不要在嵌套标记上使用正则表达式. 这是痛苦的根源。
尽管 Glorfindel 的示例适用于简单情况,但只要遇到嵌套标签集,它就会失败。
作品:
<span class="Heading3-strong">this is text</span>
... 变成:
<strong>this is text</strong>
这仍然是格式良好且有效的标记。
然而,这是行不通的:
<span class="Heading3-strong">this is text <span style="color:red;">with</span> <span style="color:blue;">additional</span> <span style="color:green;">tags</span> in the middle</span>
... 变成:
<strong>this is text <span style="color:red;">with</strong> <span style="color:blue;">additional</span> <span style="color:green;">tags</span> in the middle</span>
现在格式错误標識。
对于简单的正则表达式来说,这是一个棘手的问题——仅使用正则表达式根本无法正确处理嵌套标记。如果您需要更改任何类型的嵌套标记内容中的标记对,最好的办法是使用专门针对标记的工具,例如 XSLT 或类似工具。