我正在尝试在 Powershell 中构建一个函数,每次我必须用其他字符替换特殊字符列表时都可以使用该函数。例如,这是特殊字符的列表:
$Specialchars = '["ü","ä","ö","ß","æ","Œ","œ","°","~","Ø"]'
我希望该函数可以将“ü”替换为“ue”或将“Ø”替换为“o”等等。我的想法是针对我想要的任何字符串运行该函数,以我想要的方式替换这些特殊字符。
现在,我试过这个:
function ReplaceSpecialChars($chars)
{
return $chars -replace "Ø","o"
return $chars -replace "~",""
return $chars -replace "œ","oe"
}
它仅在找到第一个特殊字符“Ø”时起作用,例如当我针对具有“~”的字符串运行它时不起作用。我根本不是 Powershell 函数的专家,所以我想知道是否有人有一些提示可以帮助我。
非常感谢!
最佳答案
在执行下一步之前,您必须分配替换的结果。
这是该函数的更新版本,包括一种定义替换的方法:
function ReplaceSpecialChars([string]$string) {
# define replacements:
@{
"ä" = "ae"
"ß" = "ss"
# ...
}.GetEnumerator() | foreach {
$string = $string.Replace($_.Key, $_.Value)
}
return $string
}
请注意,您可能想要定义小写 + 大写替换。
关于function - Powershell - 如何构建一个函数来用其他字符替换某些特殊字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64750316/