Maison > développement back-end > Golang > Comment contourner les recherches dans les expressions régulières Go ?

Comment contourner les recherches dans les expressions régulières Go ?

Mary-Kate Olsen
Libérer: 2024-11-12 19:47:02
original
1064 Les gens l'ont consulté

How to Workaround Lookarounds in Go Regular Expressions?

Erreur d'analyse d'expression régulière : syntaxe Perl invalide ou non prise en charge (?!

Lors de la tentative de compilation d'une expression régulière dans Go, les utilisateurs peuvent rencontrer l'erreur d'analyse suivante :

error parsing regexp: invalid or unsupported Perl syntax: (?!
Copier après la connexion

Cette erreur est généralement générée lorsque vous essayez d'utiliser un opérateur de recherche (?!..., qui n'est pas pris en charge dans la syntaxe des expressions régulières de Go.

Comprendre les recherches

Les lookarounds sont un type spécial d'opérateur d'expression régulière utilisé pour faire correspondre un modèle uniquement s'il n'est pas immédiatement suivi ou précédé d'un autre modèle spécifique. Dans ce cas, (?! est utilisé pour vérifier si une chaîne donnée ne commence pas par le texte. "Activé".

Solution de contournement Go Regexp

Comme Go ne prend pas en charge les recherches, plusieurs solutions de contournement sont disponibles :

Utilisation d'expressions régulières séparées

Une approche consiste à utiliser deux expressions régulières distinctes :

nonOnRegex := regexp.MustCompile("^(?!On.*On\s.+?wrote:)(On\s(.+?)wrote:)$")
onOnRegex := regexp.MustCompile("^On.*On\s.+?wrote:")
Copier après la connexion

Vous pouvez ensuite vérifier si le nonOnRegex correspond à la chaîne et si le onOnRegex ne correspond pas pour déterminer le résultat souhaité.

Utilisation de groupes de capture facultatifs

Une autre solution de contournement consiste à utiliser un groupe de capture facultatif :

regex := regexp.MustCompile(`^On(.*On)?\s.+?wrote:`)
Copier après la connexion

Après avoir fait correspondre la chaîne à l'aide de cette expression régulière, vous pouvez vérifier si la première le groupe de capture existe et se termine par "On". Si tel est le cas, renvoyez faux, sinon renvoyez vrai.

En implémentant l'une de ces solutions de contournement, vous pouvez reproduire efficacement la fonctionnalité des recherches dans la syntaxe des expressions régulières de Go.

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