Как заменить строку, которой предшествует ноль, один или несколько пробелов в PowerShell - PullRequest
1 голос
/ 07 июня 2019

Я использую функцию .Replace () для замены перевода строки в файле, над которым я работаю, возвратом каретки и переводом строки, но я также хотел бы сопоставить любое количество пробелов, предшествующих переводу строки. Можно ли это сделать в той же операции, используя регулярное выражение?

Я пробовал различные комбинации "\ s + *", но ни одна из них не сработала, за исключением фиксированного числа пробелов, введенных вручную.

Эта версия работает для случая с одним пробелом:

.Replace(" `n","`r`n")

Например, такой файл:

...end of line one\n
...end of line two   \n

будет выглядеть так:

...end of line one\r\n
...end of line two\r\n

1 Ответ

2 голосов
/ 07 июня 2019

Метод .Replace() типа .NET [string] выполняет буквальное замещение строк.

В отличие от PowerShell -replace оператор основан на регулярных выражениях (регулярные выражения), поэтому он позволяет сопоставить переменное количество пробелов (включая ни одного) с *:

"...end of line two    `n" -replace ' *\n', "`r`n"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...