[go] 문자열에서 특정 패턴에 맞는 부분 추출하기

이번에는 Go 언어에서 문자열에서 특정 패턴에 맞는 부분을 추출하는 방법에 대해 알아보겠습니다.

strings 패키지 활용

Go 언어의 strings 패키지를 사용하여 문자열에서 특정 패턴에 맞는 부분을 추출할 수 있습니다. strings 패키지는 많은 유용한 문자열 함수를 제공하며, 이를 활용하여 패턴에 맞는 부분을 추출할 수 있습니다.

아래는 간단한 예제코드입니다.

package main

import (
	"fmt"
	"strings"
)

func main() {
	str := "I love programming in Go language"

	// 문자열에서 "programming"과 "language" 사이의 부분 추출
	startIndex := strings.Index(str, "programming") + len("programming")
	endIndex := strings.Index(str, "language")
	result := strings.TrimSpace(str[startIndex:endIndex])

	fmt.Println(result) // 출력: in Go
}

위 코드에서는 strings.Index 함수를 사용하여 부분 문자열의 시작과 끝 인덱스를 찾은 후, 해당 부분을 strings.TrimSpace 함수를 사용하여 공백을 제거한 후에 출력합니다.

strings 패키지에 대한 자세한 내용은 여기에서 확인할 수 있습니다.

위의 코드를 실행하면 “in Go”라는 결과를 얻을 수 있습니다.

정규표현식 활용

또 다른 방법으로는 정규표현식(Regular Expression)을 사용하여 특정 패턴에 맞는 부분을 추출할 수 있습니다. Go 언어에서는 regexp 패키지를 제공하며, 이를 사용하여 정규표현식을 처리할 수 있습니다.

다음은 간단한 예제코드입니다.

package main

import (
	"fmt"
	"regexp"
)

func main() {
	str := "I love programming in Go language"
	re := regexp.MustCompile(`programming in (\w+) language`)
	result := re.FindStringSubmatch(str)

	fmt.Println(result[1]) // 출력: Go
}

위의 코드에서는 정규표현식 programming in (\w+) language을 사용하여 패턴에 맞는 부분을 추출하고 있습니다.

정규표현식에 대한 자세한 내용은 여기에서 확인할 수 있습니다.

Go 언어에서 문자열에서 특정 패턴에 맞는 부분을 추출하는 방법에 대해 알아봤습니다. strings 패키지와 정규표현식 둘 다 다양한 경우에 활용할 수 있으니, 상황에 맞게 사용하시면 됩니다.