PowerShell에서 Regex를 사용하여 텍스트 추출

MD Aminul Islam 2023년6월21일
PowerShell에서 Regex를 사용하여 텍스트 추출

때때로 우리는 특정 패턴을 가진 큰 텍스트에서 특정 텍스트를 추출해야 합니다. 아래와 같은 텍스트가 있고 이 텍스트에서 이메일을 추출하려고 한다고 가정합니다.

Alen <alen@gmail.com>, Stefen <stefen@gmail.com>, Walker <walker@gmail.com>

모든 이메일은 <> 기호로 둘러싸여 있습니다.

작업을 수행하는 가장 좋은 방법은 가장 인기 있는 PowerShell 키워드인 regex를 사용하는 것입니다. 이 키워드를 사용하여 작업을 수행할 때 일치해야 하는 특정 패턴을 제공할 수 있습니다.

이 문서에서는 regex 키워드를 사용하여 문자열에서 특정 하위 문자열을 추출하는 방법을 보여줍니다. 또한 주제를 더 쉽게 만들기 위해 필요한 예와 설명을 볼 것입니다.

PowerShell에서 regex를 사용하여 텍스트 추출

아래 공유된 예에서는 문자열에서 모든 이메일을 추출합니다. 이 예제의 코드는 다음과 같습니다.

$MyText = 'Alen <alen@gmail.com>, Stefen <stefen@gmail.com>, Walker <walker@gmail.com>'
$MyPattern = '(?<=\<).+?(?=\>)'
[regex]::Matches($MyText, $MyPattern).Value

위 예제의 첫 번째 줄에서 먼저 주어진 문자열을 보유할 문자열 변수를 선언했습니다. 그런 다음 일치해야 하는 특정 패턴을 제공했습니다.

패턴은 아래에 간략하게 설명되어 있습니다.

  1. (?<=\<) - 지정된 문자가 텍스트 앞에 오는 경우에만 일치하는 긍정적인 look-behind입니다. 그러나 일치하는 문자는 포함하지 않습니다.
  2. +? - 하나 이상의 문자를 캡처(+)합니다. 하지만 몇 글자만 가능합니다.
  3. (?=\>) - 텍스트가 지정된 문자 뒤에 오는 경우에만 일치하는 긍정적 예측입니다. 일치하는 문자는 포함하지 않습니다.

마지막으로 패턴을 일치시키고 텍스트에서 이메일을 추출합니다.

위의 예제를 실행하면 아래와 같은 출력이 표시됩니다.

alen@gmail.com
stefen@gmail.com
walker@gmail.com

여기에 공유된 예제 코드는 Windows PowerShell 환경에서만 실행 가능합니다.

MD Aminul Islam avatar MD Aminul Islam avatar

Aminul Is an Expert Technical Writer and Full-Stack Developer. He has hands-on working experience on numerous Developer Platforms and SAAS startups. He is highly skilled in numerous Programming languages and Frameworks. He can write professional technical articles like Reviews, Programming, Documentation, SOP, User manual, Whitepaper, etc.

LinkedIn

관련 문장 - PowerShell String