如何删除字符串中多余的逗号?

How to remove extra commas in string?

任何人都可以帮我从字符串中删除多余的逗号并将它们传递给另一个格式正确的字符串以从 PowerShell 发送电子邮件。

$emails = "Abc@gmail.com,,,abc2@gmail.com,abc3@gmail.com,,"

我期待像下面这样的字符串

$emailsTo = "Abc@gmail.com,abc2@gmail.com,abc3@gmail.com"

使用 -replace 运算符将连续的逗号折叠为一个逗号,并从字符串的开头和结尾删除 leading/trailing 个逗号:

$emails   = 'Abc@gmail.com,,,abc2@gmail.com,abc3@gmail.com,,'
$emailsTo = $emails -replace ',+', ',' -replace '^,|,$'

试试这个

 $emails = ("Abc@gmail.com,,,abc2@gmail.com,abc3@gmail.com,," -split "," | where{$_ -ne ""}) -join ","

补充现有的有用答案:

的更高效和简洁的重新表述:

> ',,Abc@gmail.com,,,abc2@gmail.com,abc3@gmail.com,,' -split ',' -ne '' -join ','
Abc@gmail.com,abc2@gmail.com,abc3@gmail.com

另一种直接使用 .NET Framework 的方法,通过带有 RemoveEmptyEntries 选项的 [string] 类型的 .Split() 方法:

> $emails = ',,Abc@gmail.com,,,abc2@gmail.com,abc3@gmail.com,,'
> $emails.Split(',', [StringSplitOptions]::RemoveEmptyEntries) -join ','
Abc@gmail.com,abc2@gmail.com,abc3@gmail.com