Go에서 Lookbehind 부정: 솔루션
Go에서는 성능 문제로 인해 부정적인 Lookbehind 어설션이 지원되지 않습니다. 이 문제를 극복하기 위해 동일한 기능을 달성하기 위한 대체 방법을 모색할 수 있습니다.
원래 정규 표현식은 @, # 또는 / 문자로 시작하지 않는 명령을 추출하는 것을 목표로 했습니다. 다음은 두 가지 옵션입니다.
1. 부정 문자 집합:
부정 뒷모습을 제거하고 부정 문자 집합으로 바꾸세요.
\b[^@#/]\w.*
문자열 시작 부분에 허용되는 경우 ^
(?:^|[^@#\/])\b\w.*
2. 필터 기능:
특정 문자로 시작하는 단어를 제거하는 필터 기능을 구현하세요.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 정규 표현식에서 부정적인 Lookbehind 기능을 어떻게 얻을 수 있나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!