[go] 문자열에서 숫자 추출 (Number Extraction from String)

일반적으로 프로그래밍에서, 문자열에서 숫자를 추출해야 하는 경우가 있습니다. 예를 들어, 사용자가 입력한 문자열에서 숫자만을 추출하거나, 특정 패턴에 맞는 숫자를 찾아야 할 때가 있습니다. 이번 블로그에서는 Go 언어를 사용하여 문자열에서 숫자를 추출하는 방법에 대해 알아보겠습니다.

방법 1: 정규표현식 사용

Go 언어에서는 정규표현식 패키지를 사용하여 문자열에서 숫자를 추출할 수 있습니다. 아래 예제는 정규표현식을 사용하여 문자열에서 모든 숫자를 추출하는 방법을 보여줍니다.

package main

import (
	"fmt"
	"regexp"
)

func main() {
	str := "I have 2 apples and 3 oranges"
	re := regexp.MustCompile("\\d+")
	nums := re.FindAllString(str, -1)
	for _, num := range nums {
		fmt.Println(num)
	}
}

위 예제에서 \\d+는 하나 이상의 숫자에 해당하는 정규표현식을 나타냅니다. FindAllString 함수를 사용하여 해당 정규표현식에 일치하는 모든 숫자를 찾아냅니다.

방법 2: 루프를 사용하여 숫자 추출

정규표현식을 사용하지 않고도 문자열에서 숫자를 추출할 수 있습니다. 아래 예제는 문자열을 반복하면서 각 문자가 숫자인지 확인하여 숫자를 추출하는 방법을 보여줍니다.

package main

import (
	"fmt"
	"strings"
	"unicode"
)

func main() {
	str := "The price is $15.99"
	var numStr string
	for _, char := range str {
		if unicode.IsDigit(char) {
			numStr += string(char)
		}
	}
	fmt.Println(numStr)
}

위 예제는 문자열을 반복하면서 unicode.IsDigit 함수를 사용하여 숫자를 찾아냅니다.

결론

이번 글에서는 Go 언어를 사용하여 문자열에서 숫자를 추출하는 두 가지 방법을 살펴보았습니다. 정규표현식을 사용하는 방법과 루프를 이용하는 방법이 있으며, 각각의 상황에 맞게 적절한 방법을 선택하면 됩니다.

더 많은 정보는 Go 언어 공식 문서에서 확인할 수 있습니다.

참고 문헌:

이상으로 문자열에서 숫자를 추출하는 방법에 대해 알아보았습니다. 감사합니다!