我想要替换字符串中的字符然后拆分它。 示例如下:
$in = "string with spaces"
$out = $in -replace 's' | $_.Split(' ')
导致ExpressionsMustBeFirstInPipeline
。
为什么这不起作用?
答案 0 :(得分:5)
替换进入管道的结果没有任何问题,但您的下一步实际上并未从管道中读取。对于您选择的构造,您需要ForEach-Object
循环:
$out = $in -replace 's' | ForEach-Object { $_.Split(' ') }
或者在替换结果上调用Split()
(没有管道):
$out = ($in -replace 's').Split(' ')
但是,如果您使用-split
运算符而不是Split()
方法,则只需将其菊花链式连接(再次不使用管道):
$out = $in -replace 's' -split ' '
答案 1 :(得分:2)
试试这个
$in = "string with spaces"
$out = $in -split ' ' -replace 's'
echo $out
答案 2 :(得分:1)
您可以改用Replace
字符串方法。例如,用空格替换s
,然后用然后拆分空格:
$out = $in.Replace('s','').split(' ')