Це здається, що це має бути досить просто, але я не можу це зрозуміти. У мене є рядок, який виглядає приблизно так:
$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(";")