在 Atom IDE 中,一次找到 < 和 > 并分别替换为 > 和 <?

In Atom IDE, find and replace < and > with &gt; and &lt; respectively in one go?

我有很多 html 页面,其中有些部分我必须用它们的 HTML 实体版本替换所有 <> 标志, &lt;&gt;。我将手动 select 页面中的所有部分,然后让 RegExp 找到这两个标志并一次性替换它们。我已经试验了几个小时,但没有运气。

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

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

什么是:

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

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

&lt;span class="avatar2-default bg-dark rounded-circle"&t;
    &lt;a href=""&lt;Hello&lt;/a&gt;
    &lt;input type="text"&gt;
&lt;/span&gt;

我猜应该有一些图书馆可以这样做。

如果不是,用正则表达式来完成这件事会相当复杂,也许可以尝试在特定标签上测试多个正则表达式,其中一些表达式如下所示:

(?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, if you wish to explore/simplify/modify it, and in this link 的右上面板进行了解释,如果您愿意,您可以观察它如何与一些示例输入匹配。

正则表达式电路

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

边缘案例:

一个问题出现在表达式的 [^>]* 部分,它会在 such instances

中失败