Regex 过滤器使用-更换

Regex 过滤器使用-更换,regex,powershell,replace,Regex,Powershell,Replace,我正试着让我的头脑清醒过来-替换。有人能帮我吗 作为练习,我尝试简单地过滤: @{processName=chrome} 这样,chrome就会返回到我试图将其输出到的列表框中 到目前为止,我已经: $processnames = Get-Process | select ProcessName | -replace '^@{processname=','' 我知道我做错了什么,有人能给我指出正确的方向并解释一下原因吗?使用-replace需要向它传递一个对象。因此,为了让您的命令发挥作用:

我正试着让我的头脑清醒过来-替换。有人能帮我吗

作为练习,我尝试简单地过滤:

@{processName=chrome}
这样,
chrome
就会返回到我试图将其输出到的列表框中

到目前为止,我已经:

$processnames = Get-Process | select ProcessName | -replace '^@{processname=',''

我知道我做错了什么,有人能给我指出正确的方向并解释一下原因吗?

使用-replace需要向它传递一个对象。因此,为了让您的命令发挥作用:


$Processnames = Get-Process | Select ProcessName | 
   foreach {$_ -replace '^@{processname=',''}

请记住,当沿管道传递多个对象以进行操作时,必须将它们传递到
foreach
循环中。您正在告诉它我想获取
$\uu
值并查找
^@processname=
并将其替换为
空白

使用-replace需要向其传递一个对象。因此,为了让您的命令发挥作用:


$Processnames = Get-Process | Select ProcessName | 
   foreach {$_ -replace '^@{processname=',''}

请记住,当沿管道传递多个对象以进行操作时,必须将它们传递到
foreach
循环中。您正在告诉它,我想获取
$
值并查找
^@processname=
,然后将其替换为
空白

尝试此操作,以使流程名称不包含最终的
}

$Processnames = Get-Process | Select ProcessName | foreach { $_ -replace '^@{processname=(.*)}' , '$1' }

尝试此操作以使进程名称不带最后一个
}

$Processnames = Get-Process | Select ProcessName | foreach { $_ -replace '^@{processname=(.*)}' , '$1' }

您可以在不使用替换操作的情况下获取进程名称:

Get-Process | Select-Object -ExpandProperty Name
要获得chrome流程,请执行以下操作:

Get-Process chrome | Select-Object -ExpandProperty Name

您可以在不使用替换操作的情况下获取进程名称:

Get-Process | Select-Object -ExpandProperty Name
要获得chrome流程,请执行以下操作:

Get-Process chrome | Select-Object -ExpandProperty Name