原子编辑器中的后向断言正则表达式

Lookbehind assertion regex in atom editor

我尝试在原子编辑器中使用回顾断言。我的文字如下:

            <stop color="rgb(0,0,153)"       value = "0.13"/>
            <stop color="rgb(0,0,180)"       value = "0.17"/>
            <stop color="rgb(0,0,223)"       value = "0.25"/>

我可以使用 .*(?=color\=) 进行前瞻断言。它选择 "color=" 之前的所有内容。但是如果我尝试 lookbehind 断言 .*(?<=color\=) 原子告诉我 "Invalid regular expression"。似乎原子不识别 <> 作为特殊字符,因为它显示它与普通字母和数字相同的颜色。我也不能使用一次性子表达式 ?>.

因为我没有真正找到在 atom 中使用哪种风格的正则表达式的提示,所以我不知道应该改用哪个正则表达式。显然其中没有 >...

我知道这是 xml 并且我可以使用 xml 方法提取值,但这不是我想要在这里实现的目标的一部分。

This 原子讨论论坛中的线程显示,官方文档中确实仍然缺少有关正则表达式方言的信息。但是他们在讨论中写道,Atom 使用 Javascript 正则表达式。并且 Javascript 正则表达式没有实现后视,而相比之下实现了前视。

因此你必须使用没有后视的解决方案。

最近,前瞻和后视在 Atom 中工作。有关详细信息,请参阅 Javascript 的文档。

https://javascript.info/regexp-lookahead-lookbehind

下面是一个在 Atom 1.55.0 中工作的例子,它同时使用了否定的前瞻和后视。

(?<!NoMatch)regexToMatch(?!NoMatch)