私は問題を抱えており、正規表現と代替方法を使用して二重および単一の空白を表現するときに見落としている、または理解していない単純なものだと確信しています。
PowerShellで速記メタ文字\s|\s\s
を使用して、複数の文字列オブジェクトを返します。各文字列は単一または二重の空白ごとに改行されるため、他のすべては期待どおりに行分割されます。 -split
サンプルデータとPowerShellコマンド
注意:残念ながら、これは私が働いているし、それがありますので、私はそれを制御することはできませんデータの一例であるシングルとダブルの空白を両方
$Content = "Data is over here
and here is some down under too"
$Content -split "\s|\s\s"
結果
Data is over here and here is some down under too
期待される結果
Data is over here and here is some down under too
環境仕様
- Windows 10 Pro X64
- PowerShell 5.0
質問
簡略メタ文字代替構文で使用している正規表現形式で何が起こっているのかを理解したいのですが、他に決定的なものがない場合は回避策も検討します。
ルークの答えは私がやる方法です。それは「回避策」ではありません。「\ sが最初に一致することを理解しています」と言うことができるかどうかは明確ではありませんが
—
jscott
\s\s
、一致が既に存在するため、チェックされません。
-split '\s\s|\s'
@jscott質問で本当に探していたコンテンツに回答を追加しました。私はあなたが言っていることを理解しましたが、私が使っていた正規表現の方法とそれをそのように機能させる方法で、詳細などを探していました。正規表現の代替と空白の正規表現の短縮形を使用する方法。PetSerAlが必要な詳細を提供してくれたのを見ると、そこから私は不足しているものをより詳細に把握できました。私があなたが言及したのを見落とした何か他のものがある場合、私は謝罪します-あなたの時間をありがとう。
—
ピンプジュースIT
\s
は常に最初に一致します。したがって、二重スペースでは、スペースごとに1回ずつ、2回分割します。また、文字列に新しい行を追加するのではなく、複数の文字列オブジェクトを返します。