Go에서 정규식으로 일치 항목 찾기
Go로 작업할 때 정규식을 사용하여 문자열 내의 특정 패턴을 일치시켜야 하는 경우가 있습니다. regexp 패키지를 사용하여 이 작업을 수행하는 방법은 다음과 같습니다.
질문:
주어진 문자열 내에서 지정된 정규식에 대한 모든 일치 항목을 어떻게 찾아 반환할 수 있습니까? 배열?
예:
문자열 "{city}, {state} {zip}"을 고려하세요. 목표는 중괄호로 묶인 모든 하위 문자열을 포함하는 배열을 반환하는 것입니다.
초기 시도:
regexp 패키지를 사용하여 다음 코드를 시도했을 수 있습니다.
r := regexp.MustCompile("/({[^}]*})/") matches := r.FindAllString("{city}, {state} {zip}", -1)
그러나 이 코드는 일치하는 항목이 없음을 나타내는 빈 조각을 반환합니다.
해결책:
이 문제를 해결하려면 다음 단계를 고려하세요.
모든 일치의 경우:
r := regexp.MustCompile(`{[^{}]*}`) matches := r.FindAllString("{city}, {state} {zip}", -1) fmt.Println(matches) // Prints: [{city}, {state}, {zip}]
캡처된 부품의 경우 만:
r := regexp.MustCompile(`{([^{}]*)}`) matches := r.FindAllStringSubmatch("{city}, {state} {zip}", -1) for _, v := range matches { fmt.Println(v[1]) // Prints: city, state, zip }
위 내용은 Go 문자열에서 모든 정규식 일치 항목을 효율적으로 찾는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!