在powershell中删除多个空格

时间:2011-12-31 06:46:11

标签: regex powershell powershell-v2.0 removing-whitespace

我试图在powershell中找到一种删除多个空格的方法。

但我发现的是如何在php中完成它。 “Removing more than one white-space

可能会有类似的正则表达式。

如何在powershell中实现同样的目标?

我的字符串就像这样

Xcopy Source  Desination

某些行可能在源和目标之间包含多个空格。

3 个答案:

答案 0 :(得分:57)

如果您要将多个连续的空白字符折叠到一个空格中,则可以使用-replace运算符执行此操作:

'[     Hello,     World!     ]' -replace '\s+', ' '

...返回...

[ Hello, World! ]

-replace的第一个参数是要匹配的regular expression模式,第二个参数是将替换任何匹配的文本。 \s将匹配空白字符,+表示匹配一个或多个匹配项,因此,换句话说,一个或多个相邻的空格字符将替换为单个空格。请输入help about_comparison_operators或查看here以获取更多信息。

答案 1 :(得分:0)

'[     Hello,     World!     ]' -replace '^\[\s+','[' -replace '\s+]$',']' -replace '\s+',' '

培根有解释 powershell很有趣。即使我知道powershell的转义字符是`,我也必须用'['转义'\'

答案 2 :(得分:0)

另一种方式。 -左侧拆分在可变的空白处:

-split 'Xcopy Source  Destination' -join ' '

Xcopy Source Destination