2014-05-06 23 views
12

Tôi muốn chia một chuỗi phù thủy có một bộ đệm trắng khoảng trống, nhưng nhận được rất nhiều dòng trống phù thủy tôi muốn loại bỏ. mã nàyTách chuỗi ký tự với các ký tự khoảng trống trong Poweshell

$text = "Video Video Audio Audio VBI VBI" 
$text.Split() 

đầu ra này

Video 

Video 

Audio 

Audio 

VBI 



VBI 

PS H:\> 

và tôi sẽ như thế này

Video 
Video 
Audio 
Audio 
VBI 
VBI 

Trả lời

20

Bạn có thể sử dụng -split điều hành của PowerShell trong đó sử dụng biểu thức thông thường.

"Video Video Audio Audio VBI VBI" -split '\s+' 

Như đã lưu ý bởi @StijnDeVos, điều này không loại bỏ khoảng trắng đầu/cuối.

Ở đây, \s đại diện cho các ký tự khoảng trắng và + khớp với một hoặc nhiều ký tự trong số đó. Tất cả các lý do hơn để đi với câu trả lời của @ user3554001.

Tùy chọn khác là lọc các chuỗi trống.

"Video Video Audio Audio VBI VBI".split()| where {$_} 
+1

'-split '\ s +'' không loại bỏ khoảng trống đầu và cuối, vì vậy bạn vẫn cần lọc ra các chuỗi rỗng. –

9

bạn có thể sử dụng đoạn mã này để loại bỏ dòng trống:

$text.split(" ",[System.StringSplitOptions]::RemoveEmptyEntries) 
+0

Điều này không hoạt động nếu có một tab ở giữa các chuỗi. – randomuser15995183

2

Nhà điều hành -split nhận một đối số regex, vì vậy chỉ cần phù hợp với nhiều ký tự khoảng trắng (\ s +):

$Text = $text = "Video Video Audio Audio VBI VBI" 
$text -split '\s+' -match '\S' 

Video 
Video 
Audio 
Audio 
VBI 
VBI 

Bất kỳ dấu cách trắng sau dấu chấm cuối cùng nào có thể để lại cho bạn sẽ là một mục nhập rỗng, do đó, -match sẽ loại bỏ mọi thứ chỉ là khoảng trắng.

4

Hãy thử điều này, nó sẽ thay thế nhiều hơn một thể hiện của một không gian với một trường hợp duy nhất trước khi thực hiện các lệnh split:

$($text -replace '\s+', ' ').split() 
6

-split "Video Video Audio Audio VBI VBI"

+2

+1 Tôi thích câu trả lời này. Tôi quên '-split' có thể được sử dụng như một toán tử đơn nhất. – Rynant

1

giải pháp khác:

$text -split ' ' | where {$_.Trim() -ne ''} 

hoặc :

$text.Split(' ').Where({$_.Trim() -ne ''}) 
Các vấn đề liên quan