在PowerShell中拆分字符串

时间:2012-03-29 05:18:53

标签: string powershell split

我听说这个论坛对于回答最疯狂的问题是惊人的,我已经搜索了我的疯狂问题的答案,但我无法找到答案。所以我把这个发给了社区。

我使用PowerShell来满足我的脚本需求。请不要用另一种脚本语言为我提供解决方案,我确信其他脚本语言也会这样做,但我需要在PowerShell中使用它。

我需要分割很多字符串,它们在本质上类似于:

HelloWorld
HelloWorldIAmNew
HelloWorldIAmNewToScripting
ThankYouForHelpingMe

我需要根据Capital Letters拆分它们,即

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

我对分割字符串有基本的了解,但这比普通字符串更难。

2 个答案:

答案 0 :(得分:9)

使用带有负数和positive lookahead (?=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 :(得分:1)

试试这个:

("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