none
Powershell использование split RRS feed

  • Вопрос

  • Объясните, почему получается разный результат при выполнение первого и второго варианта? я предполагал увидеть одинаковый результат


    >$a = 'Я учу Powershell'
    >$a
    Я учу Powershell

    1. 
    >$a.split('\W')
    Я учу Powershell

    2. 
    >$a -split '\W'
    Я
    учу
    Powershell

    29 апреля 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