Powershell에서 공백 문자가 가변적인 분할 문자열
문자열 마녀를 분할하여 공백 문자가 가변적이지만 제거하고 싶은 빈 줄을 많이 얻고 싶습니다.이 강령
$text = "Video Video Audio Audio VBI VBI"
$text.Split()
이것을 출력합니다.
Video
Video
Audio
Audio
VBI
VBI
PS H:\>
그리고 이것을 원합니다.
Video
Video
Audio
Audio
VBI
VBI
최신 편집:
이 질문이 여전히 많은 조회수를 기록하고 있다는 것을 알게 되었습니다. 그래서 이 질문을 했을 때 저는 함수 프로그래밍이나 정규 표현식에 대해 전혀 알지 못했다는 것을 분명히 말씀드리고 싶습니다.
공백을 제거하고 문자열에서 배열을 만드는 여러 가지 방법이 있으므로 여기에 언급된 모든 솔루션이 적용됩니다.
파워쉘의-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)
-split "Video Video Audio Audio VBI VBI"
분할 명령을 수행하기 전에 공간의 인스턴스를 하나의 인스턴스로 둘 이상 교체합니다.
$($text -replace '\s+', ' ').split()
-split 연산자는 regex 인수를 사용하므로 여러 공백 문자만 일치시킵니다(\s+).
$Text = $text = "Video Video Audio Audio VBI VBI"
$text -split '\s+' -match '\S'
Video
Video
Audio
Audio
VBI
VBI
마지막 공백 뒤의 후행 공백은 null 항목이 될 수 있으므로 -match를 사용하면 공백만 제거됩니다.
기타 솔루션:
$text -split ' ' | where {$_.Trim() -ne ''}
또는:
$text.Split(' ').Where({$_.Trim() -ne ''})
언급URL : https://stackoverflow.com/questions/23496105/split-string-with-variable-whitespace-characters-in-powershell
'programing' 카테고리의 다른 글
Maria에서 소문자 테이블 이름을 변경할 수 없습니다.DB (0) | 2023.09.06 |
---|---|
CSS에서 첫번째 문자 대문자 만들기 (0) | 2023.09.06 |
간격이 실행 중인지 확인하고 그 반대의 경우 (0) | 2023.09.06 |
Android에서 네트워크 연결 유형 검색 (0) | 2023.09.01 |
모바일 레이아웃에서 부트스트랩 3 열 순서를 변경하려면 어떻게 해야 합니까? (0) | 2023.09.01 |