Код Visual Studio: выражение регулярного выражения начинается с, но не заканчивается на - PullRequest
0 голосов
/ 19 ноября 2018

Код Visual Studio использует ripgrep для поиска в файлах , который не поддерживает просмотр и обратные ссылки .

Я хочу построить выражение, которое возвращает все фразы, которые начинаются с данной строки и не заканчиваются данной строкой, например:

Начинается с "http://blah.com", но не заканчивается на ".htm"

Матчи:

http://blah.com/tmp

Не соответствует:

http://blah.com/tmp.htm
blah.com/tmp.htm

1 Ответ

0 голосов
/ 19 ноября 2018

В ваших настройках (для включения просмотра):

 "search.usePCRE2": true

Ваше регулярное выражение (с использованием отрицательного просмотра):

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

[Редактировать] Добавил $, если вы абсолютнохотите исключить совпадения, которые не заканчиваются на .htm, а не просто сопровождаются где-то в строке .htm.

Из примечаний к выпуску v1.29 :

Теперь также можно использовать обратные ссылки и утверждения предпросмотра при поиске в регулярных выражениях, установив "search.usePCRE2"": правда.Это настраивает ripgrep для использования механизма регулярных выражений PCRE2.Хотя PCRE2 поддерживает многие другие функции, мы поддерживаем только выражения регулярных выражений, которые по-прежнему действительны в JavaScript, потому что открытые редакторы по-прежнему ищут с помощью поиска в редакторе на основе JavaScript.

Положительные и отрицательные просмотры и обратные ссылки .

Также обратите внимание, что предыдущее решение для этого устарело:

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

"search.useRipgrep": false
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...