Go에서 정규식을 컴파일하려고 하면 사용자에게 다음 구문 분석 오류가 발생할 수 있습니다.
error parsing regexp: invalid or unsupported Perl syntax: (?!
이 오류는 일반적으로 에서 지원되지 않는 둘러보기 연산자(?!...)를 사용하려고 할 때 발생합니다. Go의 정규식 구문.
탐색은 패턴이 바로 뒤에 없거나 다른 특정 패턴이 선행하지 않는 경우에만 패턴을 일치시키는 데 사용되는 특수한 유형의 정규식 연산자입니다. , (?!는 주어진 문자열이 "On" 텍스트로 시작하지 않는지 확인하는 데 사용됩니다.
Go는 둘러보기를 지원하지 않으므로 사용 가능한 몇 가지 해결 방법이 있습니다.
별도의 정규식 사용
한 가지 접근 방식은 두 개의 별도 정규식을 사용하는 것입니다. :
nonOnRegex := regexp.MustCompile("^(?!On.*On\s.+?wrote:)(On\s(.+?)wrote:)$") onOnRegex := regexp.MustCompile("^On.*On\s.+?wrote:")
그런 다음 nonOnRegex가 문자열과 일치하는지 확인할 수 있습니다. onOnRegex는 원하는 결과를 결정하는 데 일치하지 않습니다.
선택적 캡처 그룹 사용
또 다른 해결 방법은 선택적 캡처 그룹을 사용하는 것입니다.
regex := regexp.MustCompile(`^On(.*On)?\s.+?wrote:`)
이 정규식을 사용하여 문자열을 일치시킨 후 첫 번째 캡처링 그룹이 존재하고 "On"으로 끝나는지 확인할 수 있습니다. 그렇다면 false를 반환하고 그렇지 않으면 true를 반환합니다.
이러한 해결 방법 중 하나를 구현하면 Go의 정규식 구문에서 탐색 기능을 효과적으로 복제할 수 있습니다.
위 내용은 Go 정규식에서 Lookaround를 해결하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!