Go에서 부정 Lookbehind 어설션 시뮬레이션
부정 Lookbehind 어설션은 Go에서 기본적으로 지원되지 않지만 유사한 결과를 얻을 수 있는 대체 방법이 있습니다. 예를 들어, "@", "#" 또는 "/"와 같은 접두사가 있는 명령을 제외하고 "foo bar baz"와 같은 명령을 추출하려고 할 때 부정적인 뒤돌아보기 대신 부정된 문자 집합을 활용할 수 있습니다.
예를 들어 다음 정규식은 이러한 문자로 시작하지 않는 단어와 일치합니다.
\b[^@#/]\w.*
문자열의 시작 부분에도 문자가 나타날 수 있는 경우 ^ 앵커를 사용할 수 있습니다:
(?:^|[^@#\/])\b\w.*
또 다른 접근 방식은 필터 기능을 활용하여 원하지 않는 단어를 제거하는 것입니다.
func Filter(vs []string, f func(string) bool) []string { vsf := make([]string, 0) for _, v := range vs { if f(v) { vsf = append(vsf, v) } } return vsf }
그런 다음 이 필터를 처리 기능과 결합하여 특정 단어를 제거할 수 있습니다. 아래에 설명된 접두사:
func Process(inp string) string { t := strings.Split(inp, " ") t = Filter(t, func(x string) bool { return strings.Index(x, "#") != 0 && strings.Index(x, "@") != 0 && strings.Index(x, "/") != 0 }) return strings.Join(t, " ") }
이러한 필터링 기술을 적용하면 Go에서 부정적인 뒤돌아보기 동작을 시뮬레이션할 수 있으므로 효율적인 매칭과 특정 패턴을 추출합니다.
위 내용은 Go에서 부정적인 Lookbehind 어설션을 어떻게 시뮬레이션할 수 있나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!