Разделить строку в PowerShell - PullRequest
3 голосов
/ 29 марта 2012

Я слышал, что этот форум великолепен для ответов на самые сумасшедшие вопросы, и я искал привет и низко, чтобы найти ответ на мой сумасшедший вопрос, однако я не могу найти ответ. Так что я передаю это сообществу.

Я использую PowerShell для своих нужд сценариев. Пожалуйста, не предлагайте мне решение на другом языке сценариев, я уверен, что другие языки сценариев сделают это, однако мне это нужно в PowerShell.

У меня есть много строк, которые мне нужно разделить, они похожи по своей природе на:

HelloWorld
HelloWorldIAmNew
HelloWorldIAmNewToScripting
ThankYouForHelpingMe

Мне нужно разделить их на основе заглавных букв, т. Е.

Hello World
Hello World I Am New
Hello World I Am New To Scripting
Thank You For Helping Me

У меня есть базовые представления о разбиении строк, но это сложнее, чем у средней строки.

Ответы [ 2 ]

9 голосов
/ 29 марта 2012

Довольно просто сделать это с помощью регулярного выражения с отрицательным и положительным прогнозом (?=pattern) и чувствительного к регистру оператора -csplit, например:

PS>  "HelloWorldIAmNewToScripting" -csplit "(?<=.)(?=[A-Z])"
Hello
World
I
Am
New
To
Scripting

Или, если вы хотите, пробелразделены:

PS>  "$("HelloWorldIAmNewToScripting" -csplit "(?<=.)(?=[A-Z])")"
Hello World I Am New To Scripting
1 голос
/ 29 марта 2012

Попробуйте это:

("HelloWorldIAmNewToScripting" -creplace '[A-Z]', ' $&').Trim().Split($null)
Hello
World
I
Am
New
To
Scripting

или

("HelloWorldIAmNewToScripting" -creplace '[A-Z]', ' $&').Trim()
Hello World I Am New To Scripting
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...