我想分割一個字符串女巫有一個變量空白字符,但得到了很多我想消除的空行。 這個代碼在Poweshell中分隔帶有可變空白字符的字符串
$text = "Video Video Audio Audio VBI VBI"
$text.Split()
輸出這個
Video
Video
Audio
Audio
VBI
VBI
PS H:\>
,我想這
Video
Video
Audio
Audio
VBI
VBI
我想分割一個字符串女巫有一個變量空白字符,但得到了很多我想消除的空行。 這個代碼在Poweshell中分隔帶有可變空白字符的字符串
$text = "Video Video Audio Audio VBI VBI"
$text.Split()
輸出這個
Video
Video
Audio
Audio
VBI
VBI
PS H:\>
,我想這
Video
Video
Audio
Audio
VBI
VBI
您可以使用PowerShell的-split
運營商,它使用正則表達式。
"Video Video Audio Audio VBI VBI" -split '\s+'
正如@StijnDeVos所指出的那樣,這不會刪除前導/後綴空白。
這裏,\s
表示空格字符,並且+
匹配其中的一個或多個。所有更多的理由去@ user3554001的答案。
另一種選擇是過濾空字符串。
"Video Video Audio Audio VBI VBI".split()| where {$_}
您可以使用此代碼段,消除空行:
$text.split(" ",[System.StringSplitOptions]::RemoveEmptyEntries)
如果字符串之間存在選項卡,則這不起作用。 – randomuser15995183
的-split運營商需要一個正則表達式的說法,所以只匹配多個空格字符(\ S +):
$Text = $text = "Video Video Audio Audio VBI VBI"
$text -split '\s+' -match '\S'
Video
Video
Audio
Audio
VBI
VBI
最後一個後面的任何尾隨空格可能會使您留空,因此-match將消除只有空白的任何內容。
嘗試此,它取代一個空間的一個以上的實例與進行分割命令之前的單個實例:
$($text -replace '\s+', ' ').split()
其他溶液:
$text -split ' ' | where {$_.Trim() -ne ''}
或:
$text.Split(' ').Where({$_.Trim() -ne ''})
'-split'\ s +''不會刪除前導空格和尾部空格,所以您仍然需要過濾掉空字符串。 –