Visual Studio многострочная замена при игнорировании начальных пробелов при поиске, но включая их при замене - PullRequest
0 голосов
/ 06 октября 2019

Я использую расширение Visual Studio Многострочный поиск и замена , пытаюсь сделать многострочную замену.

Общее назначение:

Iхотелось бы иметь возможность игнорировать начальные пробелы в найти , но включать начальные пробелы в заменить .

Пример

Скажем, у нас есть следующий код:

namespace Test
{
    public class TestCase
    {
        static void Main(string[] args)
        {
            int? num1 = 2;
            int? num2 = null;
            bool isLarger = num1 > num2;
        }
    }
}

... и, скажем, мы хотели бы заменить код:

int? num2 = null;
bool isLarger

... с:

int? num2 = null;
var larger

Таким образом, мы получили бы:

namespace Test
{
    public class TestCase
    {
        static void Main(string[] args)
        {
            int? num1 = 2;
            int? num2 = null;
            var larger = num1 > num2;
        }
    }
}

регулярное выражение для поиска

В приведенном выше примеререгулярное выражение для поиска текста (генерируется расширением VS):

num2 = null;((\r\n)|\n|\r)( |\t)*var larger()

Что такое регулярное выражение для замены?

1 Ответ

0 голосов
/ 08 октября 2019

Вы можете легко выполнить работу с помощью диалогового окна поиска и замены по умолчанию:

Найти что : \b(num2 = null;\r\s*)bool isLarger\bИли же Найти что : \b(num2 = null;[\r\s]*)bool isLarger\b Заменить на : $1var larger

Подробности

  • \b - граница слова
  • (num2 = null;\r\s*) -Группа захвата 1 ($1 извлекает это значение):
    • num2 = null; - буквенная строка
    • \r - последовательность разрыва строки
    • \s* - 0+пробелы (этот шаблон не соответствует разрывам строк, если используется без \r в VS)
  • bool isLarger - строка
  • \b - граница слова.

Тест:

enter image description here

Результат:

enter image description here

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