>  기사  >  백엔드 개발  >  Go의 정규식 엔진에서 특정 파일 확장자가 없는 문자열을 어떻게 일치시킬 수 있나요?

Go의 정규식 엔진에서 특정 파일 확장자가 없는 문자열을 어떻게 일치시킬 수 있나요?

Susan Sarandon
Susan Sarandon원래의
2024-10-26 07:35:30424검색

How Can I Match Strings Without Specific File Extensions in Go's Regex Engine?

Go 정규 표현식 엔진의 부정 세트 이해

Go에서 표준 라이브러리의 정규 표현식 엔진(RE2)은 다음을 포함한 둘러보기에 대한 지원이 부족합니다. 부정적인 예측 연산자?! 제공된 정규식에 사용된 것과 같습니다.

^(.*\.(?!(htm|html|class|js)$))?[^.]

이 정규식은 특정 파일 확장자로 끝나지 않는 문자열을 일치시키는 것을 목표로 합니다. 하지만 Go에서는 Lookaround 지원이 부족하여 예상대로 작동하지 않습니다.

대체 솔루션

부정 집합에 의존하는 대신 대안이 있습니다. Go에서 이 시나리오를 처리하기 위한 솔루션:

  1. 파일 확장자를 직접 확인:
    부정된 세트를 원하는 파일 확장자를 직접 확인하는 방법으로 대체:

    re.MustCompile(`(type1|type2)_(\d+)\.(csv|ini)`)
  2. 후행 마침표 제거:
    문자열이 추가 문자 없이 3자 파일 확장자로 끝나는지 확인하는 것이 목표인 경우 단순화된 표현식을 사용할 수 있습니다:

    re.MustCompile(`\.\w{3}$`)

일치 동작

부정 세트를 제거하거나 대체 구문을 사용하면 Go의 정규식 엔진이 정확하게 원하는 문자열을 예상대로 일치시킵니다.

위 내용은 Go의 정규식 엔진에서 특정 파일 확장자가 없는 문자열을 어떻게 일치시킬 수 있나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.