如何删除字符串中的通配符?
How to remove wildcard in string?
我正在尝试以下...
$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
,但其中 none 行得通,因为他们都将其作为正则表达式读取。我也试过"`*"
,还是不行
有人知道如何让系统不以正则表达式的形式读取吗?
你能试试这个吗?
$string = $string.replace('*','')
希望有用!
您可以使用方括号删除字符。
$string = $string -replace '[*]', ''
尝试使用 \
来转义它而不是反引号。
如果您不希望系统使用正则表达式,那么您不应该使用像 -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'
我正在尝试以下...
$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
,但其中 none 行得通,因为他们都将其作为正则表达式读取。我也试过"`*"
,还是不行
有人知道如何让系统不以正则表达式的形式读取吗?
你能试试这个吗?
$string = $string.replace('*','')
希望有用!
您可以使用方括号删除字符。
$string = $string -replace '[*]', ''
尝试使用 \
来转义它而不是反引号。
如果您不希望系统使用正则表达式,那么您不应该使用像 -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'