> 백엔드 개발 > Golang > Go의 `regexp` 패키지를 사용하여 중괄호로 묶인 문자열 일치를 추출하는 방법은 무엇입니까?

Go의 `regexp` 패키지를 사용하여 중괄호로 묶인 문자열 일치를 추출하는 방법은 무엇입니까?

Susan Sarandon
풀어 주다: 2024-12-18 16:29:10
원래의
281명이 탐색했습니다.

How to Extract String Matches Enclosed in Curly Braces Using Go's `regexp` Package?

Go에서 정규 표현식으로 문자열 일치 항목 검색

Go에서 regexp 패키지는 정규 표현식을 기반으로 문자열 내에서 일치 항목을 검색하는 기능을 제공합니다. 표현. 이 가이드에서는 중괄호로 묶인 특정 세그먼트가 포함된 특정 문자열에서 일치 항목의 배열을 추출하는 방법을 보여줍니다.

문제:

다음을 포함하는 문자열이 있습니다. 패턴:

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

귀하의 목표는 중괄호 사이에 나타나는 모든 하위 문자열을 포함하는 배열을 얻는 것입니다. regexp 패키지를 사용해도 원하는 결과를 얻는 데 어려움이 있습니다.

해결책:

이 문제를 해결하려면 다음 단계를 고려하세요.

  1. 정규식 구분 기호 제거: 슬래시 줄 바꿈을 제거합니다. 정규식.
  2. 원시 문자열 리터럴 사용: 백틱 ``으로 표시되는 원시 문자열 리터럴을 사용하여 정규식을 정의합니다. 이를 통해 단일 백슬래시로 정규식 메타 문자를 이스케이프 처리할 수 있습니다.
  3. 캡처 그룹 제거: 이 경우 캡처 그룹은 {([^{}]*)}는 중괄호 사이의 문자열만 필요하므로 필요하지 않습니다. 따라서 단순화된 패턴 {[^}]*}을 사용할 수 있습니다.

일치하는 모든 항목을 검색하려면 FindAllString을 사용하세요.

r := regexp.MustCompile(`{[^{}]*}`)
matches := r.FindAllString("{city}, {state} {zip}", -1)
로그인 후 복사

곱슬 부분 사이의 부분만 캡처하려면 중괄호를 사용하려면 캡처 괄호가 포함된 패턴으로 FindAllStringSubmatch를 사용하세요.

r := regexp.MustCompile(`{([^{}]*)}`)
matches := r.FindAllStringSubmatch("{city}, {state} {zip}", -1)
for _, v := range matches {
    fmt.Println(v[1])
}
로그인 후 복사

Regex 분석:

  • { - 문자 그대로 여는 중괄호와 일치합니다.
  • {[^{}]*} - 중괄호를 제외한 모든 문자를 캡처하여 group.
  • ([^{}]*) - 위와 유사하지만 캡처된 부분이 그룹에 할당됩니다. 1.
  • } - 문자 그대로 닫는 중괄호와 일치합니다.

위 내용은 Go의 `regexp` 패키지를 사용하여 중괄호로 묶인 문자열 일치를 추출하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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