在Atom IDE中,找到<和>并将其替换为&gt;。和&lt;一口气吗?

时间:2019-07-28 18:20:14

标签: javascript html regex visual-studio-code atom-editor

我有大量的html页面,其中有些部分必须用其HTML实体版本<和{{1}替换所有>&lt;标志}。我将手动选择页面中的所有部分,然后让RegExp查找这两个标志,并一口气替换它们。我已经尝试了几个小时,但是没有运气。

&gt;

我有这个选择整个行,当我用$ 1和$ 2进行反向引用时,整个行将被替换。

什么是

(<)[a-z,A-Z,0-9,\s,",",=,-]+(>)

需要什么(实体可能不匹配,但这只是出于意图):

<span class="avatar2-default bg-dark rounded-circle">
    <a href="">Hello</a>
    <input type="text">
</span>

1 个答案:

答案 0 :(得分:1)

我猜测应该有一些库可能这样做。

如果不是这样,使用正则表达式将相当复杂,也许可以尝试在特定标签上测试多个正则表达式,其中某些表达式如下所示:

(?i)<(\/?\b(?:span|a|input|div|i|b|s|u|br|li|ul|ol|small|img|body|html|head|h[1-6]|title|em)\b[^>]*)>

,我们期望的元素将使用逻辑OR进入这个非捕获组:

(?:span|...)

DEMO

该表达式在regex101.com的右上角进行了解释,如果您想探索/简化/修改它,在this link中,您可以观察到它如何与某些示例输入匹配,如果你喜欢。

RegEx电路

jex.im可视化正则表达式:

enter image description here

边缘案例:

一个问题可能在表达式的[^>]*部分,而在such instances中将失败