>  기사  >  백엔드 개발  >  내 Go 정규식 일치는 실패하지만 Python은 성공하는 이유는 무엇입니까?

내 Go 정규식 일치는 실패하지만 Python은 성공하는 이유는 무엇입니까?

Susan Sarandon
Susan Sarandon원래의
2024-11-26 03:18:10192검색

Why Does My Go Regex Match Fail, But Python's Succeeds?

Go에서 정규식 일치 실패

사용자가 Go에서 정규식 패턴이 일치하지 못하는 문제를 경험했습니다. 코드 조각은 정규식 패턴 "^.=b0xA-Fb$" 다음에 "parameter=0xFF" 형식의 문자열을 검증하려고 시도합니다. 그러나 MatchString() 함수는 일치가 성공한 Python과 달리 false와 nil 오류를 반환합니다.

Go 코드 디버깅

문제를 해결하려면, 사용자는 원시 문자열 리터럴을 패턴 문자열로 사용하는 것을 고려해야 합니다. Go에서 원시 문자열 리터럴은 표준 따옴표 ''' 대신 백틱 '`'으로 묶입니다. 이 규칙은 이스케이프 문자 ''가 문자열 내에서 해석되는 것을 방지합니다.

수정된 Go 코드

원시 문자열 리터럴을 사용하여 수정된 Go 코드 is:

package main

import (
    "fmt"
    "regexp"
)

func main() {
    var a string = "parameter=0xFF"
    var regex string = `^.+=\b0x[A-F][A-F]\b$`
    result, err := regexp.MatchString(regex, a)
    fmt.Println(result, err)
}

예상 출력

원시 문자열 리터럴을 사용한 후 예상 출력은 다음과 같습니다.

true <nil>

이는 다음을 나타냅니다. 입력 문자열이 의도한 대로 원하는 형식과 일치합니다.

위 내용은 내 Go 정규식 일치는 실패하지만 Python은 성공하는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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