Подтвердить что ты не робот

Какой вкус Regex использует Visual Studio Code?

Попытка выполнить поиск в Visual Studio Code, я считаю, что его рецепт Regex отличается от полной Visual Studio. В частности, я пытаюсь объявить именованную группу с string (?<p>[\w]+), которая работает в Visual Studio, но не в коде Visual Studio. Он будет жаловаться на ошибку Invalid group.

Помимо решения этой конкретной проблемы, я ищу информацию об аромате Regexes в коде Visual Studio и где можно найти документацию об этом, поэтому я могу помочь себе в решении любых других вопросов, которые я мог бы напасть.

Полная Visual Studio использует регулярные выражения .NET, как описано здесь. Эта ссылка упоминается как документация для VS-кода в другом месте в Stackoverflow, но это не так.

4b9b3361

Ответ 1

Rust Regex в боковой панели поиска/замены в файлах

Роб Лоуренс из MSFT пишет, что для поиска файлов используется регулярное выражение Rust. Документация по языку Rust описывает синтаксис.

Rob Lourens on GitHub

JavaScript Regex в виджете поиска/замены в файле

Александру Дима из MSFT написал, что виджет поиска использует регулярное выражение JavaScript. Как прокомментировал Виктор, документация ECMAScript 5 описывает синтаксис. Как и руководство по регулярным выражениям MDN JavaScript.

Alexandru Dima on GitHub

Проверьте разницу

Боковая панель поиска в файлах не поддерживает (?=foobar) тогда как виджет поиска в файлах поддерживает этот синтаксис предварительного просмотра.

Shows a lookahead working in the widget but not in the sidebar.

Что касается поиска/замены на группы

Чтобы найти/заменить группами, используйте скобки () для группировки и $1, $2, $3, $n для замены.

Вот пример.

До:

This is the text before the replace.

После:

This is the text after the replace.

Ответ 2

Ответ Shaun по-прежнему верен, однако, чтобы добавить обновление, недавно VS Code добавила возможность отказаться от использования механизма PCRE2 на основе Perl. Вы можете включить это через ваши настройки конфигурации.

Это позволяет вам выполнять более продвинутые операции регулярного выражения, такие как предпросмотр и обратные ссылки. Но, как отмечено ниже, регулярное выражение все еще должно быть допустимым регулярным выражением JavaScript.

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

И в качестве бонуса, если вы оказались здесь, пытаясь выполнить многострочный поиск, VS Code недавно также добавила эту функцию !

enter image description here