我想用b
标记替换单行h2
/ h3
/ h4
/ h5
/ blockquote
标记,{ {1}}代码。
所以我想要这个:
h6
替换为:
^<[b|h[2-5]]>([^\.]+)</[b|h[2-5]]>$
但仅限于<h6>\1</h6>
标记内,该标记位于不同的行上。我认为解决方案必须包含一个关闭blockquote
标记的lookbehind和一个开头blockquote
的负面看法,但我不确定如何实现它。
答案 0 :(得分:0)
正则表达式对于解析任意HTML非常糟糕,因为许多事情都可能出错。
话虽如此:this demo可能会让你开始。
这并不适用于边缘情况。
<div><b>This thing</div></b>
无法正确解析。
如果您知道自己的输入结构良好且嵌套不太深(例如,<b>
内的<h2>
,则可能有效)。但是要解析HTML,你真的需要一个DOM解析器。
现在,这不会处理blockquote
标记&#34;之间的&#34;要求,但使用Javascript(如果这是您正在使用的),这不是一个非常简单的任务example。您必须反复运行相同的过程,以便将所有元素转换为h6
。
如果您要使用jQuery,则可以更安全地执行此操作:jsfiddle