>백엔드 개발 >Golang >Go 언어의 문자열 처리 및 정규식

Go 언어의 문자열 처리 및 정규식

王林
王林원래의
2023-08-25 11:21:14824검색

Go 语言中的字符串处理与正则表达式

Go 언어의 문자열 처리 및 정규식

Go 언어는 문자열이 일반적으로 사용되는 데이터 유형인 강력한 유형의 언어입니다. 프로그램 개발 과정에서 문자열 처리는 매우 중요한 부분입니다. 이 기사에서는 문자열 처리의 기본 작업과 Go 언어의 정규식 사용을 소개합니다.

1. 문자열 처리

Go 언어의 문자열 유형은 불변 바이트 시퀀스입니다. 즉, 일단 생성되면 해당 값을 수정할 수 없습니다. 문자열은 큰따옴표나 역따옴표를 사용하여 표현할 수 있습니다. 이스케이프 시퀀스는
와 같이 큰따옴표로 묶인 문자열에 사용되어 개행 문자를 나타낼 수 있습니다. 백틱 문자열에는 여러 줄의 텍스트와 이스케이프 문자를 포함한 모든 문자가 포함될 수 있습니다.

  1. 문자열 연결

Go 언어에서 + 연산자를 사용하여 두 문자열을 연결할 수 있습니다. 예:

str1 := "Hello"
str2 := "world"
str3 := str1 + " " + str2
fmt.Println(str3) // output: Hello world
  1. 문자열 분할

문자열 패키지의 Split() 함수를 사용하여 문자열을 분할할 수 있습니다. . 예:

str := "Hello world"
arr := strings.Split(str, " ")
fmt.Println(arr) // output: [Hello world]
  1. String replacement

strings 패키지의 바꾸기() 함수를 사용하여 문자열을 바꿀 수 있습니다. 예:

str := "Hello world"
newStr := strings.Replace(str, "world", "Go", 1)
fmt.Println(newStr) // output: Hello Go
  1. 문자열 조회

문자열 패키지의 Index() 또는 Contains() 함수를 사용하여 문자열을 찾을 수 있습니다. 예:

str := "Hello world"
index := strings.Index(str, "world")
fmt.Println(index) // output: 6
isContains := strings.Contains(str, "Hello")
fmt.Println(isContains) // output: true
  1. 문자열 대소문자 변환

문자열 패키지의 ToUpper() 및 ToLower() 함수를 사용하여 문자열의 대소문자를 변환할 수 있습니다. 예:

str := "Hello WORLD"
newStr1 := strings.ToUpper(str)
newStr2 := strings.ToLower(str)
fmt.Println(newStr1) // output: HELLO WORLD
fmt.Println(newStr2) // output: hello world

2. 정규식

정규식은 문자열을 설명하는 데 사용되는 도구이며 문자열이 특정 패턴과 일치하는지 여부를 확인할 수 있습니다. Go 언어에는 정규식을 사용하여 문자열을 일치시키고 조작할 수 있는 내장 regexp 패키지가 있습니다.

  1. 정규 표현식의 기본 메타 문자
  • .: 모든 문자와 일치합니다.
  • d: 숫자와 일치하며 [0-9]와 동일합니다.
  • D: 숫자를 제외한 모든 문자와 일치하며, 1
  • w: 문자 및 숫자와 일치하며 [a-zA-Z0-9]와 동일합니다.
  • W: 문자 및 숫자가 아닌 모든 문자와 일치하며 2
  • s와 일치합니다. 공백 또는 공백과 같은 공백 문자와 일치합니다. tabs
  • S: 공백이 아닌 문자와 일치
  • ^: 문자열의 시작과 일치
  • $: 문자열의 끝과 일치
  • []: 대괄호 안의 모든 문자와 일치
  • [^]: 모든 것과 일치 대괄호 안의 문자를 제외한 문자
  1. 정규 표현식 함수
  • MatchString(pattern string, s string) bool: s 문자열이 패턴 정규 표현식과 일치하는지 확인 패턴
  • FindString(pattern string, s string) string: s 문자열에서 패턴 정규식 패턴과 일치하는 첫 번째 하위 문자열을 찾아 하위 문자열을 반환합니다.
  • FindAllString(pattern string, s string, n int ) []string: s 문자열에서 패턴 정규식 패턴과 일치하는 모든 하위 문자열을 찾아 반환합니다. 스트링 슬라이스. n은 최대 일치 수를 나타냅니다
  • ReplaceAllString(pattern string, s string, repl string) string: repl 문자열을 사용하여 패턴 정규식 패턴과 일치하는 s 문자열의 모든 하위 문자열을 바꾸고 대체된 문자열을 반환합니다
  1. 예제 of 정규식
package main

import (
    "fmt"
    "regexp"
)

func main() {
    str1 := "abc123"
    str2 := "Hello world"
    pattern1 := `d+`
    pattern2 := `wo..d`
    isMatch1, _ := regexp.MatchString(pattern1, str1)
    isMatch2, _ := regexp.MatchString(pattern2, str2)
    fmt.Println(isMatch1) // output: true
    fmt.Println(isMatch2) // output: true
    
    re := regexp.MustCompile(pattern1)
    match1 := re.FindString(str1)
    fmt.Println(match1) // output: 123
    
    matchAll1 := re.FindAllString(str1, -1)
    fmt.Println(matchAll1) // output: [123]
    
    repl := re.ReplaceAllString(str1, "456")
    fmt.Println(repl) // output: abc456
    
    re2 := regexp.MustCompile(pattern2)
    match2 := re2.FindString(str2)
    fmt.Println(match2) // output: world
}

요약

이 글에서는 Go 언어의 문자열 처리 및 정규식 사용을 소개합니다. 문자열 처리에는 연결, 분할, 바꾸기, 검색 및 대소문자 변환과 같은 기본 작업이 포함됩니다. 정규식을 사용하여 특정 패턴과 일치하는 문자열을 일치시키고 조작할 수 있습니다. 이러한 작업을 익히면 문자열 처리가 더 쉬워지고 프로그램 개발 효율성이 향상됩니다.


  1. 0-9
  2. a-zA-Z0-9

위 내용은 Go 언어의 문자열 처리 및 정규식의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.