2012-03-29 15 views
3

このフォーラムは狂った質問に答えるのに素晴らしいと聞きましたが、私は狂った質問に答えるためにハイとローを検索しましたが、回答が見つかりません。だから私はこれをコミュニティに出しています。PowerShellで文字列を分割する

私はスクリプト作成にPowerShellを使用しています。他のスクリプト言語で解決策を提供してはいけませんが、他のスクリプト言語でもこれを行うことができますが、PowerShellではこれが必要です。

私は、彼らがと性質が似て分割する必要があり、多くの文字列を持っている:私は上の基本的な理解を持っている

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

つまり、私は大文字に基づいて、それらを分割する必要が

HelloWorld 
HelloWorldIAmNew 
HelloWorldIAmNewToScripting 
ThankYouForHelpingMe 

を文字列を分割するが、これは平均文字列よりも難しい。

負と positive lookahead (?=pattern)で正規表現を使用して行うことがかなり単純な

答えて

9

と、大文字と小文字を区別し-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 
+0

これは、開始時に空白行を追加します。 –

+0

ええ、簡単に修正。 :-) –

+0

+1〜3時間は私より速い:-) –

1

はこれを試してみてください。

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

または