Maison > développement back-end > Golang > Pourquoi ma correspondance Go Regex échoue-t-elle, mais celle de Python réussit ?

Pourquoi ma correspondance Go Regex échoue-t-elle, mais celle de Python réussit ?

Susan Sarandon
Libérer: 2024-11-26 03:18:10
original
253 Les gens l'ont consulté

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

Échec de la correspondance Regex dans Go

Un utilisateur rencontre un problème où un modèle d'expression régulière ne parvient pas à correspondre dans Go. L'extrait de code tente de valider une chaîne de la forme "parameter=0xFF", suivant le modèle regex "^. =b0xA-Fb$". Cependant, la fonction MatchString() renvoie false et une erreur nulle, contrairement à Python où la correspondance est réussie.

Débogage du code Go

Pour résoudre le problème, l'utilisateur doit envisager d'utiliser une chaîne littérale brute comme chaîne de modèle. Dans Go, les littéraux de chaîne bruts sont placés entre guillemets « » au lieu de guillemets standard « ». Cette convention empêche le caractère d'échappement « » d'être interprété dans la chaîne.

Code Go corrigé

Le code Go corrigé utilisant une chaîne littérale brute est :

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)
}
Copier après la connexion

Sortie attendue

Après avoir utilisé un littéral de chaîne brut, la sortie attendue est :

true <nil>
Copier après la connexion

Cela indique que le la chaîne d'entrée correspond au format souhaité, comme prévu.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal