Maison > développement back-end > Golang > Comment puis-je obtenir une fonctionnalité d'analyse négative dans les expressions régulières Go ?

Comment puis-je obtenir une fonctionnalité d'analyse négative dans les expressions régulières Go ?

Susan Sarandon
Libérer: 2024-12-15 13:04:24
original
410 Les gens l'ont consulté

How Can I Achieve Negative Lookbehind Functionality in Go Regular Expressions?

Négation de Lookbehind dans Go : une solution

Dans Go, les assertions négatives de lookbehind ne sont pas prises en charge en raison de problèmes de performances. Pour surmonter ce défi, vous pouvez explorer des méthodes alternatives pour obtenir la même fonctionnalité.

L'expression régulière originale visait à extraire les commandes qui ne commençaient pas par les caractères @, # ou /. Voici deux options :

1. Jeu de caractères nié :

Supprimez le lookbehind négatif et remplacez-le par un jeu de caractères nié.

\b[^@#/]\w.*
Copier après la connexion

Si cela est autorisé au début de la chaîne, ancrez-le avec ^

(?:^|[^@#\/])\b\w.*
Copier après la connexion

2. Fonction de filtre :

Implémentez une fonction de filtre qui supprime les mots commençant par des caractères spécifiques.

func Filter(vs []string, f func(string) bool) []string {
    vsf := make([]string, 0)
    for _, v := range vs {
        if f(v) {
            vsf = append(vsf, v)
        }
    }
    return vsf
}
Copier après la connexion

Utilisez la fonction de filtre dans une fonction de traitement pour traiter le texte saisi.

func Process(inp string) string {
    t := strings.Split(inp, " ")
    t = Filter(t, func(x string) bool {
        return strings.Index(x, "#") != 0 &&
            strings.Index(x, "@") != 0 &&
            strings.Index(x, "/") != 0
    })
    return strings.Join(t, " ")
}
Copier après la connexion

Ces solutions offrent des alternatives au lookbehind négatif dans Go, garantissant un traitement efficace des regex.

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