0

我想用标签替换标签内的单行b////标签h2h3h4h5blockquoteh6

所以我想要这个:

^<[b|h[2-5]]>([^\.]+)</[b|h[2-5]]>$

替换为:

<h6>\1</h6>

但前提是它在一个blockquote标签内,该标签位于不同的行上。我认为解决方案必须涉及对结束blockquote标签的后视和对开头的负后视blockquote,但我不确定如何实现这一点。

4

1 回答 1

0

正则表达式对于解析任意 HTML 非常不利,因为很多事情都可能出错。

话虽这么说:这个演示可能会让您入门。

这不能正确处理边缘情况。

<div><b>This thing</div></b>

将无法正确解析。

如果您知道您的输入格式正确并且没有太深的嵌套(例如,在其他东西<b>中的 a中),那么它可能会起作用。<h2>但是要解析 HTML,你真的需要一个 DOM 解析器。

现在,这不处理“blockquote标签之间”的要求,但使用 Javascript(如果这是您正在使用的),这不是一个非常简单的任务示例。您必须一遍又一遍地运行相同的过程才能将所有元素转换为h6.

如果您要改用 jQuery,则可以更安全地执行此操作:jsfiddle

于 2015-09-25T18:47:56.570 回答