如何从字符串中删除结尾的逗号

时间:2018-08-02 10:30:24

标签: powershell character trim

我有一个字符串,产生的结果是PowerShell用逗号分隔,这很好,但是我不希望最后一个逗号。

我知道需要Trim函数,但是我似乎无法使其正常工作。也许我在错误的地方尝试过?

我需要它返回三个“站点代码”,每个站点代码之间用逗号分隔,并且末尾没有逗号。我需要知道在哪里真正添加修整位。

$UKPRN = "10007405"
$str_sites = "A4EYORK,AVLEEDS,BANBURY";

$sites = "";


foreach ($site in $str_sites.Split(","))
{
$sites = $sites+"'"+$site+"',"

}
Write-Output $sites;

4 个答案:

答案 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'"