"Se um trabalhador quiser fazer bem o seu trabalho, ele deve primeiro afiar suas ferramentas." - Confúcio, "Os Analectos de Confúcio. Lu Linggong"
Primeira página > Programação > Como combinar caracteres repetidos em Go Without Backreferences?

Como combinar caracteres repetidos em Go Without Backreferences?

Publicado em 19/11/2024
Navegar:463

How to Match Repeating Characters in Go Without Backreferences?

Como combinar qualquer caractere repetido usando expressões regulares no Go?

Neste artigo, abordaremos o desafio de combinar qualquer caractere que repete duas vezes usando expressões regulares em Go. Essa tarefa geralmente é simples em outras sintaxes de regex, como JavaScript, onde é possível simplesmente usar referência anterior para corresponder caracteres repetidos. No entanto, o mecanismo de expressão regular nativo do Go (re2) não suporta referência anterior. caracteres repetidos:

var str = "abccdeff"; var r = /([a-z]{1})\1/g console.log(str.match(r))

Este padrão falharia no re2 do Go devido à falta de suporte de referência anterior.

var str = "abccdeff";
var r = /([a-z]{1})\1/g
console.log(str.match(r))

Para resolver essa limitação, considere estas alternativas:

Use uma biblioteca regex compatível:

Bibliotecas como glenn-brown/golang-pkg-pcre oferecem recursos avançados, incluindo backreference e são compatíveis com a sintaxe do Go.

    Implemente um loop personalizado:
  • Desenvolva uma solução baseada em loop que analisa manualmente caracteres em busca de repetição sem depender de regex.
  • Exemplo de solução de loop personalizado
package main importar ( "fmt" "regexp" ) função principal() { str := "abccdeff" //Encontre e imprima caracteres repetidos sem usar regex para i, ch := intervalo str { se eu 1
Tutorial mais recente Mais>

Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.

Copyright© 2022 湘ICP备2022001581号-3