/ / Як розділити рядок в PowerShell - regex, string, powershell, split

Як розділити рядок в PowerShell - регулярний вираз, рядок, розряди, розбиття

Це здається, що це має бути досить просто, але я не можу це зрозуміти. У мене є рядок, який виглядає приблизно так:

$string = "blah blah; something"

Все, що я хочу зробити, - це розбити їх на крапку з комою та пробілом, але коли я намагаюся це зробити, використовуючи $string.split("; ") вона також розриває першу половину струни через пробіл. Я припускаю, що мені, мабуть, потрібно використовувати Regex, але не розумію цього для того, щоб це зробити.

Відповіді:

1 для відповіді № 1

Як щодо простого розділення рядка на ; та обрізання результатів із додаткового пробілу?

PS C:> $string.split(";") | % { $_.trim()}
blah blah
something

Зрозуміло, що і регулярне вираження спрацьовує:

[regex]::split($string, ";s")
blah blah
something

1 для відповіді № 2

System.String.Split призначений для поділу на кожен символ у рядку, який ви йому надаєте:

PS > $string = "blah blah; something"
PS > $string.Split("; b")  # This splits on ";", " ", and "b"

lah

lah

something
PS >

Якщо ви хочете розділити за такою схемою, як "; ", ви повинні використовувати -split оператор:

PS > $string = "blah blah; something"
PS > $string -split "; "
blah blah
something
PS >

0 для відповіді № 3

Якщо припустити, що це не має значення у вашому конкретному випадку, ви можете просто видалити друге пробіл.

$string.Replace("; ", ";").Split(";")