我有一个字符串列表,其中一些以“ *”开头,例如: “ * ThisIsAString”,“ *这也是一个字符串”。
我想使用where子句仅选择以“ *”开头的字符串,但是,因为*是用于指定继续到字符串结尾的字符-我很难受。
这就是我想要做的,Where-Object {$_.DisplayName -like "* "}
我确定这是可能的,但是在网上进行一些挖掘之后,我还没有找到一种方法!
答案 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 comments和Gert Jan Kraaijeveld's helpful alternative都提供了有效的解决方案。
最直接的解决方案是转义 *
字符。在通配符表达式中,可以使用反引号(`
)完成,但请注意,必须将其放在单引号字符串({{ 1}}):
'...'