【发布时间】:2017-10-27 00:58:56
【问题描述】:
我正在拼命尝试将以下函数从 PHP 改编为 Powershell:
函数 lgReplace($origString,$repArray)
{
// Transforms an input string containing terms like %1%, %2% and so on by values in array
for($i=1;$i<count($repArray)+1;$i++)
{
$origString=str_replace("%$i%",$repArray[$i],$origString);
}
return $origString;
}
在php中,你可以这样调用这个函数:
$source="I like %1% and %2% !";
$new=lgReplace($source, array(1=>"drinking beer",2=>"coding")
也就是说,函数会在 $source 中查找“%1%”,将其更改为“drinking beer”,然后在 $source 中查找“%2%”,将其替换为“coding”,然后返回结果是“我喜欢喝啤酒和编码!”。
我尝试将此功能适配到powershell,但失败了:
function lgReplace($origString,$repArray)
{
# Transforms an input string containing terms like %1%, %2% and so on by values in array
for($i=1;$i -lt $repArray.count+1;$i++)
{
$origString=$origString -replace "%$i%",$repArray[$i]
}
return $origString
}
$source="I like %1% and %2% !"
$terms=@("coding","drinking beer")
$new=lgReplace $source,$terms
$new
$new 显示这个:
I like %1% and %2% !
coding
drinking beer
我尝试了几种方法来完成这项工作,但无济于事......任何帮助将不胜感激! 谢谢!
【问题讨论】:
-
你可以这样做
cls;$repArray = "drinking", "coding";Write-Output ("I like {0} and {1} !" -f $repArray) -
谢谢马丁,帮了我很多!我不知道如何给你应得的功劳,我是 Stackoverflow 的新手...
-
看来其他人也有同样的想法,所以您可以接受他们的回答。
-
你是个绅士!
标签: string powershell replace