/ / Как да премахнете wildcard в низ? - powershell, powershell-v3.0

Как да премахна маска в низ? - powershell, powershell-v3.0

Опитвам следното ...

$string = "*abc*"
$string = $string -replace "*",""
Write-Host $string

но получавате следната грешка

Редовният модел на изразяване не е валиден: *. В C: ScriptsTeststesting.ps1: 3 char: 1 + $ string = $ string -заменете "*", "" + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo: InvalidOperation: (*: String) [], RuntimeException + FullyQualifiedErrorId: InvalidRegularExpression

Опитах -replace, .replace, .trim, но никой от тях не работи, защото всички го четат като редовен израз. Опитах и ​​аз "`*"и тя все още не работи.

Някой знае ли как да накара системата да не чете като регекс?

Отговори:

2 за отговор № 1

Опитайте да използвате за да избягате от него вместо от заден план.


1 за отговор № 2

Бихте ли опитали това?

$string = $string.replace("*","")

Дано да се получи!


1 за отговор № 3

Можете да използвате квадратни скоби, за да премахнете знаците.

$string = $string -replace "[*]", ""

0 за отговор № 4

Ако не искате системата да използва регекс, не трябва да използвате оператор за генериране като -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"