> 백엔드 개발 > Golang > Go의 정규식을 사용하여 중괄호로 묶인 모든 하위 문자열을 추출하는 방법은 무엇입니까?

Go의 정규식을 사용하여 중괄호로 묶인 모든 하위 문자열을 추출하는 방법은 무엇입니까?

Susan Sarandon
풀어 주다: 2024-12-25 09:56:31
원래의
876명이 탐색했습니다.

How to Extract All Substrings Enclosed in Curly Braces Using Go's Regex?

Go에서 Regex를 사용하여 모든 문자열 일치 찾기

Go에서 문자열 작업을 할 때 특정 패턴이나 하위 문자열을 찾아야 하는 경우가 많습니다. 정규식은 텍스트를 일치시키고 조작하는 강력한 방법을 제공합니다. 일반적인 작업 중 하나는 특정 패턴과 일치하는 모든 항목을 찾아 슬라이스 또는 배열에 저장하는 것입니다.

문제 설명:

하위 문자열을 묶는 중괄호가 포함된 문자열이 제공됩니다. , 목표는 중괄호 사이의 모든 부분 문자열을 추출하여 배열로 반환하는 것입니다. 예를 들어, 문자열이 다음과 같다면:

{city}, {state} {zip}
로그인 후 복사

배열을 반환해야 합니다. 포함:

  • {도시}
  • {주}
  • {zip}

해결책:

이를 달성하기 위해 Go의 정규 표현식 패키지를 활용할 수 있습니다. 그러나 정규식을 정의할 때 주의해야 할 몇 가지 핵심 사항이 있습니다.

  • 정규식 구분 기호 사용하지 마세요: Go에서는 정규식을 슬래시(/)로 묶지 않습니다. default.
  • 원시 문자열 리터럴 사용: 복잡한 정규식 패턴을 정의할 때 단일 백슬래시로 특수 문자를 이스케이프하려면 원시 문자열 리터럴(접두사가 백틱 ``)을 사용하는 것이 좋습니다.
  • 그룹 캡처: 그룹 캡처를 사용하면 일치 항목의 특정 부분을 추출할 수 있습니다. 하지만 이 문제의 경우 정규식을 단순화하고 사용을 피할 수 있습니다.

업데이트된 Go 코드는 다음과 같습니다.

package main

import (
    "fmt"
    "regexp"
)

func main() {
    str := "{city}, {state} {zip}"

    // Define the regular expression pattern
    r := regexp.MustCompile(`{[^{}]*}`)

    // Find all matches
    matches := r.FindAllString(str, -1)

    // Print the matches
    for _, match := range matches {
        fmt.Println(match)
    }
}
로그인 후 복사

정규식 분석:

  • {[^{}]*}: 곱슬로 묶인 모든 하위 문자열과 일치합니다.

출력:

  • {city}
    {state}
    로그인 후 복사

위 내용은 Go의 정규식을 사용하여 중괄호로 묶인 모든 하위 문자열을 추출하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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