[go] 문자열 내부 검색하기
1. Substring 검색
특정 부분 문자열을 찾는 가장 기본적인 검색 방법은 strings.Contains
함수를 사용하는 것입니다. 이 함수는 대상 문자열이 특정 부분 문자열을 포함하고 있는지 여부를 판단합니다. 만약 포함되어 있다면 해당 문자열의 시작 위치를 반환하고 그렇지 않으면 -1을 반환합니다.
아래는 strings.Contains
함수의 예제 코드입니다:
package main
import (
"fmt"
"strings"
)
func main() {
str := "hello, world"
substr := "world"
if strings.Contains(str, substr) {
fmt.Printf("%s를 찾았습니다.", substr)
} else {
fmt.Printf("%s를 찾지 못했습니다.", substr)
}
}
2. 문자열 인덱스 검색
문자열 내에서 특정 문자나 문자열이 처음으로 나타나는 위치를 찾을 때는 strings.Index
함수를 사용합니다. 이 함수는 대상 문자열에서 지정된 부분 문자열이나 문자의 첫 번째 등장 위치를 찾아 반환합니다. 만약 대상 문자열에 해당 문자열이나 문자가 없다면 -1을 반환합니다.
아래는 strings.Index
함수의 예제 코드입니다:
package main
import (
"fmt"
"strings"
)
func main() {
str := "hello, world"
char := "l"
index := strings.Index(str, char)
if index != -1 {
fmt.Printf("%s가 처음으로 나타나는 위치: %d", char, index)
} else {
fmt.Printf("%s가 없습니다.", char)
}
}
3. 정규표현식을 활용한 검색
복잡한 패턴이나 다양한 형식의 문자열을 검색할 때는 정규표현식을 사용하는 것이 유용합니다. Go에서는 regexp
패키지를 사용하여 정규표현식을 처리할 수 있습니다. regexp
패키지를 사용하여 문자열에서 패턴을 검색하고 추출하는 방법에 대해 알아보겠습니다.
아래는 정규표현식을 사용하여 문자열에서 패턴을 검색하는 예제 코드입니다:
package main
import (
"fmt"
"regexp"
)
func main() {
str := "The quick brown fox jumps over the lazy dog"
re := regexp.MustCompile("fox")
indexes := re.FindStringIndex(str)
if indexes != nil {
fmt.Printf("패턴 'fox'의 시작 위치: %d", indexes[0])
} else {
fmt.Println("패턴을 찾지 못했습니다.")
}
}
위의 예제에서는 regexp.MustCompile
함수를 사용하여 정규표현식을 컴파일하고, FindStringIndex
함수를 사용하여 문자열에서 해당 패턴의 시작 위치를 찾습니다.
이렇게 Go 언어에서는 strings
패키지와 regexp
패키지를 활용하여 문자열 내부에서의 검색 작업을 쉽게 수행할 수 있습니다.