任何人都可以帮我删除字符串中的额外逗号,并将它们传递给格式良好的另一个字符串,以便从PowerShell发送电子邮件。
$emails = "Abc@gmail.com,,,abc2@gmail.com,abc3@gmail.com,,"
我期待下面的字符串
$emailsTo = "Abc@gmail.com,abc2@gmail.com,abc3@gmail.com"
答案 0 :(得分:3)
使用-replace
运算符将连续逗号折叠为单个逗号,并从字符串的开头和结尾删除前导/尾随逗号:
$emails = 'Abc@gmail.com,,,abc2@gmail.com,abc3@gmail.com,,'
$emailsTo = $emails -replace ',+', ',' -replace '^,|,$'
答案 1 :(得分:1)
试试这个
$emails = ("Abc@gmail.com,,,abc2@gmail.com,abc3@gmail.com,," -split "," | where{$_ -ne ""}) -join ","
答案 2 :(得分:1)
补充现有的,有用的答案:
Esperento57's answer的更有效和简洁的重新制定:
> ',,Abc@gmail.com,,,abc2@gmail.com,abc3@gmail.com,,' -split ',' -ne '' -join ','
Abc@gmail.com,abc2@gmail.com,abc3@gmail.com
直接使用.NET Framework的替代方法,通过[string]
类型的.Split()
方法和RemoveEmptyEntries
选项:
> $emails = ',,Abc@gmail.com,,,abc2@gmail.com,abc3@gmail.com,,'
> $emails.Split(',', [StringSplitOptions]::RemoveEmptyEntries) -join ','
Abc@gmail.com,abc2@gmail.com,abc3@gmail.com