Heim >Backend-Entwicklung >Golang >Warum schlägt mein Go-Regex-Match fehl, der von Python jedoch erfolgreich?

Warum schlägt mein Go-Regex-Match fehl, der von Python jedoch erfolgreich?

Susan Sarandon
Susan SarandonOriginal
2024-11-26 03:18:10215Durchsuche

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

Regex-Übereinstimmungsfehler in Go

Ein Benutzer stößt auf ein Problem, bei dem ein reguläres Ausdrucksmuster in Go nicht übereinstimmt. Das Code-Snippet versucht, eine Zeichenfolge der Form „parameter=0xFF“ zu validieren und folgt dabei dem Regex-Muster „^. =b0xA-Fb$“. Allerdings gibt die MatchString()-Funktion „Falsch“ und einen Null-Fehler zurück, anders als in Python, wo der Abgleich erfolgreich ist.

Debuggen des Go-Codes

Um das Problem zu beheben, Der Benutzer sollte die Verwendung eines Rohzeichenfolgenliterals als Musterzeichenfolge in Betracht ziehen. In Go werden rohe String-Literale in Backticks „“ anstelle von Standard-Anführungszeichen „“ eingeschlossen. Diese Konvention verhindert, dass das Escape-Zeichen „“ innerhalb der Zeichenfolge interpretiert wird.

Korrigierter Go-Code

Der korrigierte Go-Code unter Verwendung eines rohen String-Literals lautet:

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)
}

Erwartet Ausgabe

Nach der Verwendung eines Rohzeichenfolgenliterals lautet die erwartete Ausgabe:

true <nil>

Dies zeigt an, dass die Eingabezeichenfolge wie beabsichtigt mit dem gewünschten Format übereinstimmt.

Das obige ist der detaillierte Inhalt vonWarum schlägt mein Go-Regex-Match fehl, der von Python jedoch erfolgreich?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn