原子编辑器中的后向断言正则表达式
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)
我尝试在原子编辑器中使用回顾断言。我的文字如下:
<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)