Visual Studio Code Regex содержит, но не заканчивается - PullRequest
0 голосов
/ 20 ноября 2018

Я хочу построить выражение регулярного выражения в VS Code, которое возвращает все фразы в целом решении, которые содержат данную строку (имейте в виду, что она может содержать специальные символы) и не заканчивается данной строкой, например, содержит /webhelp, ноне заканчивается на /

Совпадения:

/server/webhelp

blah/webhelp#

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

/server/webhelp/

server#webhelp/

Я не эксперт в Regex, я пытался что-то построитькак:

(?=/webhelp)(?=.*(?<!/)$)

Но это не работает.

Ответы [ 2 ]

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

Вот немного более короткая версия регулярного выражения:

/webhelp(?!/)

Это просто соответствует '/webhelp', если за ним не следует косая черта.

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

Обратите внимание, что в данный момент регулярные выражения VSCode еще не поддерживаются, если у вас есть "search.usePCRE2": true set .

Кажется, поддержка lookbehind будет добавлена ​​рано или поздно:

Если вы все еще не нашли утверждения, не волнуйтесь!Эта функция только недавно поддерживается JavaScript и должна появиться в VS Code в более позднем обновлении оболочки Electron.

В данный момент вы можете использовать средства прогнозирования.Регулярное выражение, которое должно соответствовать тому, что вам нужно, это

/webhelp(?!.*/$).*$

enter image description here

Подробности

  • /webhelp - буквальная подстрока
  • (?!.*/$) - отрицательный прогноз, который гарантирует, что строка не заканчивается /
  • .*$ - остальная часть строки.

Работает даже в Найти в файлах :

enter image description here

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