Estou tentando o seguinte ...
$string = "*abc*"
$string = $string -replace "*",""
Write-Host $string
mas receba o seguinte erro
O padrão de expressão regular não é válido: *. Em C: ScriptsTeststesting.ps1: 3 char: 1 + $ string = $ string -replace "*", "" + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo: InvalidOperation: (*: String) [], RuntimeException + FullyQualifiedErrorId: InvalidRegularExpression
Eu tentei -replace
, .replace
, .trim
, mas nenhum deles está funcionando porque todos estão lendo como uma expressão regular. Eu também tentei "`*"
, e ainda não funciona.
Alguém sabe como fazer o sistema não ler como um regex?
Respostas:
2 para resposta № 1Tente usar escapá-lo em vez do bastão.
1 para resposta № 2
Você poderia tentar isso?
$string = $string.replace("*","")
Espero que funcione!
1 para resposta № 3
Você pode usar colchetes para remover os caracteres.
$string = $string -replace "[*]", ""
0 para a resposta № 4
Se você não deseja que o sistema use regex, não deve usar um operador de regex como -replace
. O método de string .Replace()
funcionaria tão bem. Você disse .Trim()
também não funcionou, mas de fato funciona. Possivelmente e emita com seus dados reais como deveria ser o seu exemplo na pergunta.
PS C:temp> ""{0}"" -f "*abc*".replace("*","")
"abc"
PS C:temp> ""{0}"" -f "*abc*".Trim("* ")
"abc"
PS C:temp> ""{0}"" -f "* abc* ".Trim("* ")
"abc"