我尝试在原子编辑器中使用lookbehind断言。我的文字如下:
<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\=)
原子告诉我“无效的正则表达式”。似乎原子不会将<
或>
识别为特殊字符,因为它显示的颜色与普通字母和数字相同。我也不能使用只有一次的子表达式?>
。
由于我没有真正找到一个暗示在原子中使用正则表达式的提示,我不知道应该使用哪个正则表达式。显然没有>
的人......
我知道这是xml,我可以用xml方法提取值,但这不是我想在这里实现的部分。
答案 0 :(得分:7)
This帖子显示,官方文档中确实仍然缺少有关正则表达方言的信息。但他们在讨论中写道,Atom使用Javascript正则表达式。并且Javascript正则表达式没有实现后看,而相反的是先行实现。
因此,您必须使用没有外观的解决方案。
答案 1 :(得分:1)
最近,前瞻和后视在 Atom 中工作。详情请参阅 Javascript 文档。
https://javascript.info/regexp-lookahead-lookbehind
下面是一个在 Atom 1.55.0 中同时使用负前瞻和后视的示例。
(?<!NoMatch)regexToMatch(?!NoMatch)