我有一个字符串,产生的结果是PowerShell用逗号分隔,这很好,但是我不希望最后一个逗号。
我知道需要Trim函数,但是我似乎无法使其正常工作。也许我在错误的地方尝试过?
我需要它返回三个“站点代码”,每个站点代码之间用逗号分隔,并且末尾没有逗号。我需要知道在哪里真正添加修整位。
$UKPRN = "10007405"
$str_sites = "A4EYORK,AVLEEDS,BANBURY";
$sites = "";
foreach ($site in $str_sites.Split(","))
{
$sites = $sites+"'"+$site+"',"
}
Write-Output $sites;
答案 0 :(得分:6)
您可以只使用TrimEnd()
$str = "string with , at the end,"
$str.TrimEnd(",")
答案 1 :(得分:3)
您的字符串构建方法是首先为您创建该问题的方法。您想正确引用字符串中的所有元素吗?分别引用您的数组元素,然后使用-join
,您将无需处理任何工件。
$sites = "A4EYORK,AVLEEDS,BANBURY"
($sites.split(",") | ForEach-Object{"'$_'"}) -join ","
答案 2 :(得分:2)
$str_sites = "A4EYORK,AVLEEDS,BANBURY"
$sites = $str_sites.Split(",") | % { "'{0}'" -f $_ }
Write-Output ($sites -join ',')
$sites
是数组,使用-join
运算符与','联接。
有关-join
的更多信息,请参见Microsoft Docs
答案 3 :(得分:1)
为此,我个人使用String.Split()
和String.Join()
,但是由于您的所有术语都是由文字字符组成的,因此您也可以使用简单的正则表达式替换模式轻松地做到这一点:< / p>
$str_sites = $str_sites -replace '\b(\w+)\b',"'`$1'"