


Comment puis-je simuler des assertions Lookbehind négatives dans des expressions régulières Go ?
Dec 01, 2024 am 12:35 AMSimulation d'un lookbehind négatif dans Go
Votre regex originale, comportant une assertion de lookbehind négative, vise à extraire des commandes sans aucun précédent @, #, ou / caractères. Cependant, Go ne prend pas en charge les lookbehinds négatifs, ce qui constitue un obstacle à la mise en œuvre de ce modèle.
Réécriture de l'expression régulière
Pour obtenir la même fonctionnalité sans lookbehinds négatifs, nous pouvons remplacer les caractères à exclure dans le jeu de caractères :
[^@#/]\w.*
Si les commandes ne sont pas autorisées à commencer par ces caractères, nous pouvons utiliser l'ancre ^ pour appliquer cette condition :
(?:^|[^@#\/])\b\w.*
Approche alternative utilisant les fonctions Go
Vous pouvez également envisager d'utiliser les fonctions Go pour filtrer et traiter la chaîne d'entrée :
func Filter(vs []string, f func(string) bool) []string { ... } 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, " ") }
Cette approche exploite une fonction de filtre pour exclure les mots commençant par les caractères spécifiés, puis réassemble les mots restants dans une nouvelle chaîne. Vous pouvez trouver une démonstration fonctionnelle sur le terrain de jeu Go sur http://play.golang.org/p/ntJRNxJTxo.
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!

Article chaud

Outils chauds Tags

Article chaud

Tags d'article chaud

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Sujets chauds

GO Language Pack Import: Quelle est la différence entre le soulignement et sans soulignement?

Comment écrire des objets et des talons simulés pour les tests en Go?

Comment mettre en œuvre le transfert d'informations à court terme entre les pages du cadre Beego?

Comment puis-je définir des contraintes de type personnalisé pour les génériques en Go?

Comment puis-je utiliser des outils de traçage pour comprendre le flux d'exécution de mes applications GO?

Comment puis-je utiliser des liners et des outils d'analyse statique pour améliorer la qualité et la maintenabilité de mon code GO?

Comment écrire des fichiers dans GO Language de manière pratique?

Comment convertir la liste des résultats de la requête MySQL en une tranche de structure personnalisée dans le langage Go?
