HOWTO · PowerShell
PowerShell에서 문자열을 별도의 변수로 분할
이 자습서에서는 PowerShell에서 문자열을 별도의 변수로 분할하는 방법을 소개합니다.
이 페이지의 내용
PowerShell에서 문자열의 일부를 별도 변수에 담으려면 문자열을 배열로 분할한 다음 필요한 요소를 변수에 할당합니다. 리터럴 구분자를 사용할 때는 String.Split() 메서드를, 정규식 구분자를 사용할 때는 -split 연산자를 사용합니다.
아래 예제에서는 각 할당으로 어떤 값이 만들어지는지 보여 줍니다.
문자열을 String.Split() 메서드로 분할
String.Split()는 문자열에 적용하는 메서드입니다. 구분자 인수를 지정하지 않으면 공백 문자를 기준으로 텍스트를 나눕니다. 반환값은 배열이므로 인덱스를 사용해 각 요소를 이름 있는 변수에 할당할 수 있습니다. 첫 번째 요소의 인덱스는 0입니다.
다음 예제를 실행해 보세요:
이 섹션의 코드와 표시되는 레이블 또는 출력은 영어로 유지됩니다.
$text = "Hello World"
$parts = $text.Split()
$first = $parts[0]
$second = $parts[1]
$first
$second
$record = "North|East|West"
$limitedParts = $record.Split([char[]]@('|'), 2)
$region = $limitedParts[0]
$remaining = $limitedParts[1]
$region
$remaining
첫 번째 변수 쌍에는 Hello와 World가 들어갑니다. 문자 배열과 개수를 받는 오버로드를 사용하면 리터럴 구분자를 지정하고 반환되는 부분의 개수를 제한할 수 있습니다. 두 번째 예제에서는 파이프 문자를 구분자로 사용하고 개수를 2로 지정합니다. 따라서 $region에는 첫 번째 파이프 앞의 텍스트가 들어가고, $remaining에는 뒤에 파이프가 더 있더라도 첫 번째 파이프 뒤의 모든 텍스트가 들어갑니다. 반환된 각 부분에서 구분자는 제거됩니다.
여러 리터럴 문자 중 하나를 기준으로 나누려면 문자 배열을 전달하세요. 예를 들어 Split([char[]]@(',', ';'))는 쉼표나 세미콜론을 구분자로 취급합니다. 연속된 구분자가 데이터에서 중요하다면 선택한 오버로드가 그 사이의 빈 부분을 어떻게 처리하는지 확인하고, 필요할 때 StringSplitOptions 값을 명시적으로 선택하세요. 구분자가 리터럴 문자이고 구분자, 옵션 또는 최대 부분 개수를 위한 .NET 오버로드를 사용하려는 경우 이 메서드가 유용합니다.
문자열을 -split 연산자로 분할
-split 연산자는 정규식을 구분자로 사용하는 간결한 대안입니다. 따라서 하나 이상의 공백 문자(\s+)나 문자 집합의 임의 문자처럼 패턴을 기준으로 나누기에 편리합니다. 메서드와 마찬가지로 결과는 배열이며 각 요소를 별도 변수에 할당할 수 있습니다. 선택적 제한값은 분할 결과의 최대 개수를 지정합니다. 허용된 마지막 분할 뒤의 텍스트는 마지막 부분에 남습니다.
다음 예제를 실행해 보세요:
이 섹션의 코드와 표시되는 레이블 또는 출력은 영어로 유지됩니다.
$fruitLine = "apple,banana;cherry|date"
$firstFruit, $remainingFruit = $fruitLine -split '[,;|]', 2
$firstFruit
$remainingFruit
여기서 문자 클래스 [,;|]는 쉼표, 세미콜론 또는 파이프 문자와 일치합니다. 첫 번째 변수에는 apple이 들어가고, 분할 개수가 2이므로 두 번째 변수에는 banana;cherry|date가 들어갑니다. String.Split()와 달리 -split는 구분자를 정규식으로 해석합니다. 정규식 메타문자를 문자 그대로 찾으려면 이스케이프하세요.
문자열이 패턴에 맞는지 확인하거나 일치 그룹을 캡처하려면 -match를 사용하세요. 이 연산자는 구분자와 일치하는 위치에서 문자열을 나누지 않습니다. 그런 작업에는 -split를 사용하세요. 리터럴 구분자와 오버로드별 옵션에는 String.Split()를, 정규식 구분자 패턴에는 -split를 선택하세요. 어느 방법을 사용하든 이후 명령에서 개별 값이 필요하면 반환된 배열 요소를 이름 있는 변수에 할당하면 됩니다.