> 백엔드 개발 > Golang > Golang 함수의 텍스트 처리 및 정규식 적용 방법

Golang 함수의 텍스트 처리 및 정규식 적용 방법

WBOY
풀어 주다: 2023-05-15 23:00:25
원래의
1659명이 탐색했습니다.

Golang은 효율성과 유연성을 갖춘 프로그래밍 언어입니다. Golang 언어에서 함수와 정규식은 모두 매우 중요한 기능입니다. 함수는 텍스트 처리에 널리 사용되는 반면 정규식은 문자열 검색, 일치 및 교체에 널리 사용됩니다.

이 글에서는 텍스트 처리에 Golang 함수를 적용하는 방법과 Golang에서 정규 표현식의 기본 사용법을 살펴보겠습니다.

1. 텍스트 처리 기능

Go 언어에서 문자열은 불변 바이트 배열입니다. 이러한 문자열을 처리하려면 다음 함수를 사용해야 합니다.

  1. 문자열 패키지 기능

strings 패키지는 Golang에서 제공하는 표준 패키지 중 하나로 문자열 처리를 위한 다양한 기능이 포함되어 있습니다. 이러한 함수는 문자열 자르기, 연결, 비교, 분할, 검색 등에 사용할 수 있습니다. 다음은 몇 가지 일반적인 기능입니다.

a.strings.TrimSpace(str string) string

이 함수는 문자열 str의 앞뒤 공백을 제거한 후 결과를 반환합니다.

b.strings.Split(str string, sep string) []string

이 함수는 구분 기호 sep에 따라 문자열 str을 문자열 배열로 분할합니다.

c.strings.Join(str_list []string, sep string) string

이 함수는 문자열 배열 str_list를 지정된 구분 기호 sep와 연결하고 연결된 문자열을 반환합니다.

d.strings.Contains(str string, substr string) bool

이 함수는 문자열 str에 하위 문자열 substr이 포함되어 있는지 확인하는 데 사용되는 bool 유형 값을 반환합니다.

e.strings.Index(str string, substr string) int

이 함수는 문자열 str에서 하위 문자열 substr의 위치를 ​​반환하는 데 사용되는 정수 유형의 값을 반환합니다.

f.strings.Replace(str string, old string, new string, n int) string

이 함수는 문자열 str의 old를 new로 대체하며, n은 대체 횟수입니다.

  1. strconv 패키지 기능

strconv 패키지는 Golang에서 제공하는 표준 패키지로, 문자열을 정수, 부동 소수점 숫자, 부울 값과 같은 다른 데이터 유형으로 변환하는 데 사용됩니다. 다음은 일반적으로 사용되는 몇 가지 기능입니다.

a.strconv.Atoi(str string) (int, error)

이 함수는 문자열 str을 int 유형의 값으로 변환합니다. 변환에 실패하면 오류가 반환됩니다.

b.strconv.ParseFloat(str string, bitSize int) (float64, error)

이 함수는 문자열 str을 float64 유형 값으로 변환합니다. 변환에 실패하면 오류가 반환됩니다.

c.strconv.FormatInt(i int64, base int) string

이 함수는 int64 유형의 i 값을 문자열로 변환합니다.

2. 정규식

정규식은 텍스트 패턴 일치를 기반으로 하는 기술입니다. 문자열 검색, 일치 및 교체에 널리 사용됩니다. Golang의 표준 라이브러리는 정규식을 지원하는 regexp 패키지를 제공합니다.

정규식의 기본 구문은 다음과 같습니다.

^ 줄의 시작과 일치
$ 줄의 끝과 일치

가 아닌 모든 문자와 일치

  • 이전 문자와 0번 이상 일치
  • 이전 문자와 1번 이상 일치
    ? 이전 문자와 0 또는 1번 일치
    d는 숫자와 일치
    w는 알파벳 또는 숫자와 일치
    S는 비어 있지 않은 모든 문자와 일치
    []는 문자의 모든 문자와 일치 set
    () 그룹 일치
  1. 정규식 일치

정규식 패키지의 MatchString 함수를 사용하여 문자열이 정규식과 일치하는지 확인할 수 있습니다. 예를 들어, 다음 코드는 문자열에 3개의 숫자 그룹이 포함되어 있는지 확인합니다.

package main

import (
    "fmt"
    "regexp"
)

func main() {
    match, _ := regexp.MatchString("\d{3}", "123")
    fmt.Println(match) // true

    match, _ = regexp.MatchString("\d{3}", "12")
    fmt.Println(match) // false
}
로그인 후 복사
  1. 정규식 컴파일

MatchString 함수는 실행될 때마다 정규식을 컴파일해야 하므로 성능에 영향을 미칩니다. . 따라서 Compile 함수를 사용하여 정규식을 먼저 컴파일한 다음 이후 코드에서 사용할 수 있습니다.

package main

import (
    "fmt"
    "regexp"
)

func main() {
    reg := regexp.MustCompile("\d{3}")
    match := reg.MatchString("123")
    fmt.Println(match) // true

    match = reg.MatchString("12")
    fmt.Println(match) // false
}
로그인 후 복사
  1. 찾기 및 바꾸기

regexp 패키지는 문자열에서 정규식을 검색하고 일치하는 모든 하위 문자열을 반환하는 FindAllString 함수도 제공합니다. 예를 들어, 다음 코드는 문자열에서 3개의 숫자로 구성된 모든 하위 문자열을 반환합니다.

package main

import (
    "fmt"
    "regexp"
)

func main() {
    reg := regexp.MustCompile("\d{3}")
    str := "123a456b789c"
    result := reg.FindAllString(str, -1)
    fmt.Println(result) // [123 456 789]
}
로그인 후 복사

regexp 패키지는 정규식과 일치하는 문자열의 모든 하위 문자열을 다른 문자열로 바꾸는 데 사용되는 RectAllString 함수도 제공합니다. 예를 들어 다음 코드는 문자열의 3개 숫자로 구성된 모든 하위 문자열을 XXX로 대체합니다.

package main

import (
    "fmt"
    "regexp"
)

func main() {
    reg := regexp.MustCompile("\d{3}")
    str := "123a456b789c"
    result := reg.ReplaceAllString(str, "XXX")
    fmt.Println(result) // XXXaXXXbXXXc
}
로그인 후 복사

3. 결론

텍스트 처리에서 Golang 언어의 기능은 효율적이고 유연합니다. 이러한 함수를 사용하여 문자열 자르기, 연결, 비교, 분할 및 검색과 같은 작업을 수행할 수 있습니다.

정규식은 문자열을 검색하고 일치시키고 바꾸는 데 널리 사용되는 텍스트 패턴 일치 기술입니다. Golang에서는 regexp 패키지를 사용하여 정규식을 지원하고 정규식, MatchString 함수, FindAllString 함수 및 RecreAllString 함수를 컴파일하여 일치, 검색 및 대체 작업을 구현할 수 있습니다.

그러므로 Golang의 텍스트 처리와 정규식을 익히는 것이 매우 중요합니다. 이러한 함수와 정규식을 사용하는 과정에서 문자열 데이터를 보다 효율적으로 처리할 수 있습니다.

위 내용은 Golang 함수의 텍스트 처리 및 정규식 적용 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿