如何在PowerShell中替换以零,一个或多个空格开头的字符串

时间:2019-06-07 07:17:47

标签: powershell

我正在使用.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 个答案:

答案 0 :(得分:2)

.NET .Replace()类型的[string] 方法执行文字字符串替换。

相比之下,PowerShell的-replace operator基于 regexes (正则表达式),因此它允许您将数量可变的空格(包括无空格)与 *进行匹配:

"...end of line two    `n" -replace ' *\n', "`r`n"