我正在尝试以下内容......
$string = "*abc*"
$string = $string -replace "*",""
Write-Host $string
但是收到以下错误
Regular expression pattern is not valid: *. At C:\Scripts\Tests\testing.ps1:3 char:1 + $string = $string -replace "*","" + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo : InvalidOperation: (*:String) [], RuntimeException + FullyQualifiedErrorId : InvalidRegularExpression
我已经尝试-replace
,.replace
,.trim
,但他们都没有工作,因为他们都将其作为正则表达式阅读。我还试过了"`*"
,但它仍然没有用。
任何人都知道如何让系统不作为正则表达式阅读?
答案 0 :(得分:2)
尝试使用\
来逃避它而不是反引号。
答案 1 :(得分:1)
$string = $string.replace('*','')
希望它能奏效!
答案 2 :(得分:1)
您可以使用方括号删除字符。
$string = $string -replace '[*]', ''
答案 3 :(得分:0)
如果您不希望系统使用正则表达式,那么您不应该使用像-replace
这样的正则表达式运算符。字符串方法.Replace()
也可以正常工作。你说.Trim()
不起作用,但确实如此。可能会将您的真实数据问题与问题中的示例相关联。
PS C:\temp> "'{0}'" -f "*abc*".replace("*","")
'abc'
PS C:\temp> "'{0}'" -f "*abc*".Trim("* ")
'abc'
PS C:\temp> "'{0}'" -f "* abc* ".Trim("* ")
'abc'