¿Cómo hacer coincidir cualquier carácter repetido usando expresiones regulares en Go?
En este artículo, abordaremos el desafío de hacer coincidir cualquier personaje que se repite dos veces usando expresiones regulares en Go. Esta tarea suele ser sencilla en otras sintaxis de expresiones regulares, como JavaScript, donde simplemente se puede usar una referencia inversa para hacer coincidir caracteres repetidos. Sin embargo, el motor de expresión regular nativo de Go (re2) no admite referencias inversas.
No se puede utilizar la referencia inversa en re2 de Go
El ejemplo de JavaScript proporcionado aprovecha la referencia inversa para capturar caracteres repetidos:
var str = "abccdeff";
var r = /([a-z]{1})\1/g
console.log(str.match(r))
Este patrón fallaría en re2 de Go debido a la falta de soporte de referencia retrospectiva.
Alternativas a re2 de Go
Para abordar esta limitación, considere estas alternativas:
Ejemplo de solución de bucle personalizado
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
Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.
Copyright© 2022 湘ICP备2022001581号-3