在PowerShell中像“ *”

时间:2019-02-21 21:49:11

标签: powershell

我有一个字符串列表,其中一些以“ *”开头,例如: “ * ThisIsAString”,“ *这也是一个字符串”。

我想使用where子句仅选择以“ *”开头的字符串,但是,因为*是用于指定继续到字符串结尾的字符-我很难受。

这就是我想要做的,Where-Object {$_.DisplayName -like "* "}

我确定这是可能的,但是在网上进行一些挖掘之后,我还没有找到一种方法!

3 个答案:

答案 0 :(得分:2)

$_.DisplayName -like '[*] *'

$_.DisplayName.StartsWith('* ')

答案 1 :(得分:2)

另一种方法是使用正则表达式-match

PS> $strings='* one','two','* three'
PS> $strings.Where({$_ -match  '^\* '})
* one
* three

答案 2 :(得分:0)

Your own answer based on Ansgar Wiecher's helpful commentsGert Jan Kraaijeveld's helpful alternative都提供了有效的解决方案。

最直接的解决方案是转义 *字符。在通配符表达式中,可以使用反引号`)完成,但请注意,必须将其放在单引号字符串({{ 1}}):

'...'