我想替换字符串中的字符,然后拆分它。 示例如下:
$in = "string with spaces"
$out = $in -replace 's' | $_.Split(' ')
导致 ExpressionsMustBeFirstInPipeline
。
为什么这不起作用?
最佳答案
替换进入管道的结果没有错,但您的下一步实际上并没有从管道读取。对于您选择的构造,您需要一个 ForEach-Object
循环:
$out = $in -replace 's' | ForEach-Object { $_.Split(' ') }
或对替换结果调用Split()
(无管道):
$out = ($in -replace 's').Split(' ')
但是,如果您使用 -split
运算符而不是 Split()
方法,您可以简单地菊花链式连接它(再次不使用管道):
$out = $in -replace 's' -split ' '
关于powershell - 在 PowerShell 中替换后如何管道?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48265596/