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

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

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

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

81 голос | спросил Eric 11 FebruaryEurope/MoscowbSat, 11 Feb 2017 20:39:05 +0300000000pmSat, 11 Feb 2017 20:39:05 +030017 2017, 20:39:05

2 ответа


0

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

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

 Роб Лоуренс на GitHub

Регулярное выражение JavaScript в виджете поиска /замены в файле

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

 Александру Дима на GitHub

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

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

 Показывает заголовок, работающий в виджете, но не в боковой панели.

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

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

Вот пример.

До:

 Это текст перед заменой.

После:

 Это текст после замены.

ответил Shaun Luttin 12 FebruaryEurope/MoscowbSun, 12 Feb 2017 07:45:18 +0300000000amSun, 12 Feb 2017 07:45:18 +030017 2017, 07:45:18
0

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

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

  

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

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

 введите описание изображения здесь

ответил protoEvangelion 17 Jam1000000amThu, 17 Jan 2019 03:15:31 +030019 2019, 03:15:31

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132