我试图在powershell中找到一种删除多个空格的方法。
但我发现的是如何在php中完成它。 “Removing more than one white-space”
可能会有类似的正则表达式。
如何在powershell中实现同样的目标?
我的字符串就像这样
Xcopy Source Desination
某些行可能在源和目标之间包含多个空格。
答案 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