Comment faire correspondre n'importe quel caractère répétitif à l'aide d'expressions régulières dans Go ?
Dans cet article, nous aborderons le défi de faire correspondre n'importe quel caractère qui se répète deux fois en utilisant des expressions régulières dans Go. Cette tâche est souvent simple dans d'autres syntaxes regex, telles que JavaScript, où l'on peut simplement utiliser une référence arrière pour faire correspondre les caractères répétitifs. Cependant, le moteur d'expression régulière natif de Go (re2) ne prend pas en charge la référence arrière.
Impossible d'utiliser la référence arrière dans le re2 de Go
L'exemple JavaScript fourni exploite la référence arrière pour capturer caractères répétitifs :
var str = "abccdeff";
var r = /([a-z]{1})\1/g
console.log(str.match(r))
Ce modèle échouerait dans le re2 de Go en raison du manque de prise en charge des références arrière.
Alternatives au re2 de Go
Pour résoudre cette limitation, envisagez ces alternatives :
Exemple de solution de boucle personnalisée
package main
import (
"fmt"
"regexp"
)
func main() {
str := "abccdeff"
// Find and print repeating characters without using regex
for i, ch := range str {
if i 1
Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.
Copyright© 2022 湘ICP备2022001581号-3