문자열에서 PowerShell 서브 문자열 추출하는 방법

  1. Substring() 메서드를 사용하여 PowerShell 서브스트링 추출하기
  2. 문자열의 왼쪽에서 PowerShell 서브스트링 추출하기
  3. 특정 문자 전후에서 PowerShell 서브스트링 추출하기
  4. 두 문자 사이에서 PowerShell 서브스트링 추출하기
문자열에서 PowerShell 서브 문자열 추출하는 방법

이 기사는 PowerShell에서 문자열에서 서브스트링을 추출하는 방법을 설명합니다. 서브스트링은 문자열의 일부에 불과합니다.

PowerShell에서는 Substring()split() 메서드를 사용하여 서브스트링을 만들 수 있습니다. 예를 들어, 문자열 Delftstack.com이 있다면 Delftstack은 서브스트링이고 com은 또 다른 서브스트링입니다.

이 기사에서는 Substring() 메서드에 대해 논의할 것입니다.

Substring() 메서드를 사용하여 PowerShell 서브스트링 추출하기

먼저 Substring() 메서드의 구문을 살펴보겠습니다.

string.Substring(int startIndex, int length)

구문의 intstartIndexlength를 인덱스 번호로 표시합니다. startIndex는 우리가 추출하려는 서브스트링의 첫 번째 문자를 나타내고, length는 문자열에서 우리가 추출하고자 하는 문자 수입니다.

우리는 서브스트링의 startIndexlength를 결정하기 위해 IndexOf 메서드를 사용합니다.

IndexOf의 결과값에 1을 더하여 startIndex를 결정합니다. 예를 살펴보겠습니다.

ned.delftstack.com이 우리의 문자열이라고 가정할 때, 문자열에서 첫 번째 문자 n의 인덱스 위치는 무엇입니까? 다음 명령어를 실행하여 위치를 확인할 수 있습니다:

"ned.delftstack.com".IndexOf('n')

결과는 0입니다. 이는 IndexOf 메서드가 문자열의 첫 번째 발생을 왼쪽에서 오른쪽으로 검색하고 항상 0에서 시작하기 때문입니다.

따라서, 만약 문자 n에서 시작하는 서브스트링을 추출하고자 한다면, 우리의 startIndex는 0이 될 것입니다.

LastIndexOf를 사용하여 문자열의 마지막 발생 위치를 찾을 수도 있습니다. 예를 들어, 문자 d의 마지막 발생은 다음과 같을 것입니다:

"ned.delftstack.com".LastIndexOf('d')

이 기본 정보는 PowerShell에서 문자열을 다룰 수 있게 해줍니다.

문자열의 왼쪽에서 PowerShell 서브스트링 추출하기

위의 정보를 활용해 봅시다.

ned.delftstack.com에서 서브스트링 ned를 추출하고자 한다면 어떻게 할까요?

먼저 ourstrng이라는 변수에 우리의 문자열을 저장하겠습니다.

$ourstrng = "ned.delftstack.com"

Substring() 메서드의 구문에서 우리의 명령어는 다음과 같습니다:

$ourstrng.Substring(0, 3)

이렇게 하면 startIndex0이고 length가 3자이기 때문에 ned가 반환됩니다. 만약 우리의 목표가 문자열에서 delftstack을 추출하는 것이라면 어떻게 될까요?

첫 번째 단계는 서브스트링의 startIndex를 결정하는 것입니다. 이 경우, 우리는 구분자인 첫 번째 마침표를 사용할 것입니다.

$ourstrng.IndexOf(".")

결과는 3이 될 것입니다. 하지만 기억하실 수 있듯이, 문자열의 첫 문자를 위해 결과에 1을 더하기 때문에 우리의 startIndex4가 됩니다.

길이는 서브스트링이 가져야 할 문자 수로, 1부터 계산할 것입니다. 서브스트링 delftstack10자입니다.

$ourstrng.Substring(4, 10)

이렇게 하면 delftstack이 반환됩니다.

특정 문자 전후에서 PowerShell 서브스트링 추출하기

neddelftstack.com 두 개의 서브스트링을 문자열에서 추출하고자 한다면 어떻게 할까요?

먼저, 우리의 구분자인 첫 번째 .의 위치를 결정해야 합니다. 아래 명령어는 구분자를 $sepchar라는 변수에 저장합니다.

$sepchar = $ourstrng.IndexOf(".")

서브스트링을 추출하기 위해 아래 명령어를 실행하겠습니다:

$ourstrng.Substring(0, $sepchar)

이렇게 하면 첫 번째 부분인 ned가 추출됩니다. 다른 서브스트링을 위해서는 다음을 실행하겠습니다:

$ourstrng.Substring($sepchar + 1)

이렇게 하면 deftstack.com이 반환됩니다.

두 문자 사이에서 PowerShell 서브스트링 추출하기

만약 문자열이 ned.delftstack.com이라면, 서브스트링은 첫 번째와 두 번째 마침표 사이에 위치한 delftstack이 됩니다. 이러한 스크립트는 세 개의 명령어가 필요합니다.

첫 번째 명령어는 첫 번째 마침표 (.)의 위치를 결정하고 이를 firstsep 변수에 저장합니다.

$firstsep = $ourstrng.IndexOf(".")

두 번째 명령어는 LastIndexOf 메서드를 사용하여 두 번째 마침표의 위치를 결정하고 이를 lastrep 변수에 저장합니다.

$lastrep = $ourstrng.LastIndexOf(".")

마지막 명령어는 문자열에서 서브스트링 delftstack을 추출합니다.

$ourstrng.Substring($firstsep + 1, $lastrep - 4)

결론적으로, PowerShell 구분자 전후 및 사이에서 문자열에서 서브스트링을 추출할 수 있습니다. 위에서 보았듯이 Substring() 메서드는 매우 유용합니다.

튜토리얼이 마음에 드시나요? DelftStack을 구독하세요 YouTube에서 저희가 더 많은 고품질 비디오 가이드를 제작할 수 있도록 지원해주세요. 구독하다
작가: John Wachira
John Wachira avatar John Wachira avatar

John is a Git and PowerShell geek. He uses his expertise in the version control system to help businesses manage their source code. According to him, Shell scripting is the number one choice for automating the management of systems.

LinkedIn

관련 문장 - PowerShell String