Go 정규 표현식 엔진의 부정 세트 이해
Go에서 표준 라이브러리의 정규 표현식 엔진(RE2)은 다음을 포함한 둘러보기에 대한 지원이 부족합니다. 부정적인 예측 연산자?! 제공된 정규식에 사용된 것과 같습니다.
^(.*\.(?!(htm|html|class|js)$))?[^.]
이 정규식은 특정 파일 확장자로 끝나지 않는 문자열을 일치시키는 것을 목표로 합니다. 하지만 Go에서는 Lookaround 지원이 부족하여 예상대로 작동하지 않습니다.
대체 솔루션
부정 집합에 의존하는 대신 대안이 있습니다. Go에서 이 시나리오를 처리하기 위한 솔루션:
파일 확장자를 직접 확인:
부정된 세트를 원하는 파일 확장자를 직접 확인하는 방법으로 대체:
re.MustCompile(`(type1|type2)_(\d+)\.(csv|ini)`)
후행 마침표 제거:
문자열이 추가 문자 없이 3자 파일 확장자로 끝나는지 확인하는 것이 목표인 경우 단순화된 표현식을 사용할 수 있습니다:
re.MustCompile(`\.\w{3}$`)
일치 동작
부정 세트를 제거하거나 대체 구문을 사용하면 Go의 정규식 엔진이 정확하게 원하는 문자열을 예상대로 일치시킵니다.
위 내용은 Go의 정규식 엔진에서 특정 파일 확장자가 없는 문자열을 어떻게 일치시킬 수 있나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!