Лучший отвечающий
Powershell использование split

Вопрос
-
Объясните, почему получается разный результат при выполнение первого и второго варианта? я предполагал увидеть одинаковый результат
>$a = 'Я учу Powershell'
>$a
Я учу Powershell
1.
>$a.split('\W')
Я учу Powershell
2.
>$a -split '\W'
Я
учу
Powershell29 апреля 2014 г. 19:16
Ответы
-
1) String.Split - метод (Char[]) - Возвращает строковый массив, содержащий подстроки данного экземпляра, разделенные элементами заданного массива знаков Юникода.
PS > "Я учу\PowerShell и Windows".split("\W") Я учу PowerShell и indows
split(char[]) - вместо char[] вы указали символы \ и W,а не регулярное выражение.Этот метод класса String не работает с регулярными выражениям.
2) -split - использует регулярные выражения.Эквивалентно - [regex]::Split()
PS > 'Я учу Powershell' -split "\W" Я учу Powershell PS > [regex]::Split("Я учу PowerShell","\W") Я учу PowerShell
- Изменено KazunEditor 29 апреля 2014 г. 19:35
- Предложено в качестве ответа R.LevchenkoMVP 30 апреля 2014 г. 7:04
- Помечено в качестве ответа KazunEditor 5 мая 2014 г. 7:12
29 апреля 2014 г. 19:34Отвечающий
Все ответы
-
1) String.Split - метод (Char[]) - Возвращает строковый массив, содержащий подстроки данного экземпляра, разделенные элементами заданного массива знаков Юникода.
PS > "Я учу\PowerShell и Windows".split("\W") Я учу PowerShell и indows
split(char[]) - вместо char[] вы указали символы \ и W,а не регулярное выражение.Этот метод класса String не работает с регулярными выражениям.
2) -split - использует регулярные выражения.Эквивалентно - [regex]::Split()
PS > 'Я учу Powershell' -split "\W" Я учу Powershell PS > [regex]::Split("Я учу PowerShell","\W") Я учу PowerShell
- Изменено KazunEditor 29 апреля 2014 г. 19:35
- Предложено в качестве ответа R.LevchenkoMVP 30 апреля 2014 г. 7:04
- Помечено в качестве ответа KazunEditor 5 мая 2014 г. 7:12
29 апреля 2014 г. 19:34Отвечающий -
Kazun, спасибо за ответ, не всё понял, но знаю теперь что искать. Спасибо30 апреля 2014 г. 7:02