Visual Studio代码使用ripgrep的to search in files doesn't support look around and backreferences。
我想构建一个表达式,该表达式返回所有以给定字符串开头但不以给定字符串结尾的短语,例如:
以“ http://blah.com
”开头,但不以“ .htm
”结尾
比赛:
http://blah.com/tmp
不匹配:
http://blah.com/tmp.htm
blah.com/tmp.htm
答案 0 :(得分:5)
在您的设置中(以启用超前功能):
"search.usePCRE2": true
您的正则表达式(使用负数超前查询):
blah\.com(?!.*\.htm$)
[编辑]如果您绝对要排除不以$
结尾的匹配项,而不仅仅是在字符串中的某个地方加上.htm
,则添加.htm
。
现在也可以使用反向引用和超前断言 在正则表达式搜索中,通过设置“ search.usePCRE2”:true。这配置 ripgrep使用PCRE2正则表达式引擎。尽管PCRE2支持许多其他功能 功能,我们仅支持在以下情况下仍然有效的正则表达式 JavaScript,因为仍然使用编辑器的 基于JavaScript的搜索。
Positive and negative lookaheads和backreferences。
还请注意,先前的解决方案已弃用:
// Deprecated. Consider "search.usePCRE2" for advanced regex feature support.
// This setting is deprecated and now falls back on "search.usePCRE2".
"search.useRipgrep": false