首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >多行正则表达式替换标签中的标签吗?

多行正则表达式替换标签中的标签吗?
EN

Stack Overflow用户
提问于 2015-09-26 02:11:09
回答 1查看 49关注 0票数 0

我想将blockquote标记中的单行b/h2/h3/h4/h5标记替换为h6标记。

所以我想要这个:

代码语言:javascript
复制
^<[b|h[2-5]]>([^\.]+)</[b|h[2-5]]>$

将替换为以下内容:

代码语言:javascript
复制
<h6>\1</h6>

但仅当它位于不同行的blockquote标记中时。我认为解决方案必须包括对结束blockquote标记的后视和对开始blockquote的负后视,但我不确定如何实现这一点。

EN

回答 1

Stack Overflow用户

发布于 2015-09-26 02:47:57

正则表达式对于解析任意的HTML来说是非常糟糕的,因为很多事情都可能出错。

这就是说:this demo可能会帮你入门。

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

代码语言:javascript
复制
<div><b>This thing</div></b>

将无法正确解析。

如果您知道您的输入是格式良好的,并且没有太深的嵌套(例如,<h2>中的<b>和其他内容),那么它可能会起作用。但是要解析HTML,您确实需要一个DOM解析器。

现在,这并不能处理“在blockquote标记之间”的要求,但是对于Javascript (如果您正在使用它),这不是一个非常简单的任务example。实际上,您必须一遍又一遍地运行相同的过程,以将所有元素转换为h6

如果你用jQuery代替,你可以做的更安全:jsfiddle

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32788234

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档