【问题标题】:How do I remove a trailing comma from a string如何从字符串中删除尾随逗号
【发布时间】:2019-01-10 02:12:29
【问题描述】:

我有一个字符串在 PowerShell 中产生结果,用逗号分隔,这很好,但我不想要最后一个逗号。

我知道 Trim 功能是必需的,但我似乎无法让它工作。也许我一直在错误的地方尝试它?

我需要它返回三个“站点代码”,每个都用逗号分隔,最后没有逗号。我需要知道在哪里添加修剪位。

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

$sites = "";


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

}
Write-Output $sites;

【问题讨论】:

  • 请不要发布代码截图,请在问题中发布实际代码。
  • 你不应该张贴代码图片。我们无法复制并尝试一下。
  • 另外请重新表述输入和预期输出的样子。
  • 我现在使用了一个代码示例。
  • 你想在这里实现什么?为什么不能使用数组和每个字符串呢?

标签: powershell character trim


【解决方案1】:

我个人会为此使用String.Split()String.Join(),但是由于您的所有术语都是由单词字符组成的,因此您也可以使用简单的正则表达式替换模式轻松做到这一点:

$str_sites = $str_sites -replace '\b(\w+)\b',"'`$1'"

【讨论】:

  • 我曾想过添加它,但想保持简单。
【解决方案2】:
$str_sites = "A4EYORK,AVLEEDS,BANBURY"

$sites = $str_sites.Split(",") | % { "'{0}'" -f $_ }

Write-Output ($sites -join ',')

$sites 是数组,使用-join 运算符与',' 连接。 有关-join 的更多信息,请参阅Microsoft Docs

【讨论】:

    【解决方案3】:

    您的字符串构建方法首先为您创建了该问题。您想正确引用字符串的所有元素吗?单独引用您的数组元素,然后使用-join,您将无需处理任何工件。

    $sites = "A4EYORK,AVLEEDS,BANBURY"
    ($sites.split(",") | ForEach-Object{"'$_'"}) -join ","
    

    【讨论】:

      【解决方案4】:

      你可以只使用 TrimEnd()

      $str = "string with , at the end,"
      $str.TrimEnd(",")
      

      【讨论】:

        猜你喜欢
        • 2013-07-29
        • 2012-05-20
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-01-25
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多