В шаблонах регулярных выражений VSCode точка .
соответствует любому символу, но любые символы разрыва строки.
In. NET Регулярное выражение, используемое в Visual Studio, точка соответствует любому символу, кроме новой строки, LF, char.
Эта разница объясняет результаты, которые вы получаете, и вы не можете назвать их правильными или неправильными, это всего лишь различия в regex engine.
Обратите внимание, что вы не заметили бы никакой разницы между этими двумя механизмы, если вы использовали окончания строк только для LF, но Visual Studio в Windows по умолчанию использует окончания CRLF.
Чтобы обернуть всю строку двойными кавычками, используя. NET regex, просто исключите оба Символы LF и CR (возврат каретки) из сопоставления путем замены точки на класс символов с отрицанием [^\r\n]
:
^[^\r\n]+
И замены на шаблон "$&",
, где $&
относится ко всему совпадению.
Вы можете избавиться от группы захвата в регулярном выражении VSCode и использовать тот же шаблон замены, что и в. NET тоже.