首页 > 解决方案 > 如何在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

标签: powershell

解决方案


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

相比之下,PowerShell 的-replace 运算符基于正则表达式(正则表达式),因此它允许您匹配可变数量的空格(包括无空格) *

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

推荐阅读