Visual Studio代码:regex表达式以开头但不以结尾

时间:2018-11-19 13:06:13

标签: regex visual-studio-code

Visual Studio代码使用ripgrepto 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

1 个答案:

答案 0 :(得分:5)

在您的设置中(以启用超前功能):

 "search.usePCRE2": true

您的正则表达式(使用负数超前查询):

blah\.com(?!.*\.htm$)

[编辑]如果您绝对要排除不以$结尾的匹配项,而不仅仅是在字符串中的某个地方加上.htm,则添加.htm

来自v1.29 release notes

  

现在也可以使用反向引用和超前断言   在正则表达式搜索中,通过设置“ search.usePCRE2”:true。这配置   ripgrep使用PCRE2正则表达式引擎。尽管PCRE2支持许多其他功能   功能,我们仅支持在以下情况下仍然有效的正则表达式   JavaScript,因为仍然使用编辑器的   基于JavaScript的搜索。

Positive and negative lookaheadsbackreferences

还请注意,先前的解决方案已弃用:

// Deprecated. Consider "search.usePCRE2" for advanced regex feature support.
// This setting is deprecated and now falls back on "search.usePCRE2".

"search.useRipgrep": false