Как разделить содержимое строки на массив строк в PowerShell?
У меня есть строка, в которой есть адреса электронной почты, разделенные точкой с запятой:
$address = "[email protected]; [email protected]; [email protected]"
Как я могу разбить это на массив строк, который будет выглядеть следующим образом?
[string[]]$recipients = "[email protected]", "[email protected]", "[email protected]"
Ответы
Ответ 1
Как и PowerShell 2, просто:
$recipients = $addresses -split "; "
Обратите внимание, что правая сторона на самом деле нечувствительна к регистру регулярное выражение, а не простое совпадение. Используйте csplit
для принудительной чувствительности к регистру. Подробнее см. about_Split.
Ответ 2
[string[]]$recipients = $address.Split('; ',[System.StringSplitOptions]::RemoveEmptyEntries)
Ответ 3
Удалите пробелы из исходной строки и разделите ее точкой с запятой
$address = "[email protected]; [email protected]; [email protected]"
$addresses = $address.replace(' ','').split(';')
Или все в одной строке:
$addresses = "[email protected]; [email protected]; [email protected]".replace(' ','').split(';')
$addresses
становится:
@('[email protected]','[email protected]','[email protected]')