Опитвам следното ...
$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"