2016-10-23 9 views
1

Может кто-нибудь, пожалуйста, помогите мне удалить дополнительные запятые из строки и передать их в другую строку, хорошо отформатированную для отправки электронной почты от PowerShell.Как удалить дополнительные запятые в строке?

$emails = "[email protected],,,[email protected],[email protected],," 

Я ожидаю, что строка, как показано ниже

$emailsTo = "[email protected],[email protected],[email protected]" 

ответ

1

попробовать это

$emails = ("[email protected],,,[email protected],[email protected],," -split "," | where{$_ -ne ""}) -join "," 
+0

спасибо ... это работает отлично – Vishwa

+0

Привет Esperento57, – Vishwa

+0

его добавление запятой в конце, если $ emails имеет место в конце $ emails = ("[email protected] ,,, abc2 @ gmail.com, abc3 @ gmail.com ,," -split "," | где {$ _ -ne ""}) -join "," – Vishwa

3

Используйте оператор -replace разрушаться подряд запятые в один файл и удалить начальные/конечные запятые от начала и конца строки:

$emails = '[email protected],,,[email protected],[email protected],,' 
$emailsTo = $emails -replace ',+', ',' -replace '^,|,$' 
1

В дополнение к существующим, полезным ответам:

Более эффективная и краткая Переформулировка Esperento57's answer:

> ',,[email protected],,,[email protected],[email protected],,' -split ',' -ne '' -join ',' 
[email protected],[email protected],[email protected] 

Альтернативный подход с использованием .NET Framework непосредственно, с помощью .Split() метода [string] типа-с опцией RemoveEmptyEntries :

> $emails = ',,[email protected],,,[email protected],[email protected],,' 
> $emails.Split(',', [StringSplitOptions]::RemoveEmptyEntries) -join ',' 
[email protected],[email protected],[email protected] 

 Смежные вопросы

  • Нет связанных вопросов^_^