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 :
<code class="javascript">var str = "abccdeff"; var r = /([a-z]{1})/g console.log(str.match(r))</code>
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 pour résoudre cette limitation, envisagez ces alternatives :
Exemple de solution de boucle personnalisée
<code class="go">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 < len(str) && ch == rune(str[i+1]) { fmt.Printf("Found repeated character: %c\n", ch) } } }</code>
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!