"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 capturar grupos repetidos em expressões regulares Go?

Como capturar grupos repetidos em expressões regulares Go?

Publicado em 2024-11-02
Navegar:571

How to Capture Repeating Groups in Go Regular Expressions?

Capturando grupos repetidos no GO

Ao tentar analisar strings que seguem um formato específico, como palavras maiúsculas seguidas por zero ou mais duplos -argumentos entre aspas, é necessário definir uma expressão regular que capture os elementos desejados. No cenário fornecido, a tentativa de capturar argumentos repetidos usando a seguinte expressão regular:

re1, _ := regexp.Compile(`([A-Z] )(?: "([^"] )")*`)

falhou ao capturar todos os argumentos corretamente. Para resolver esse problema, uma expressão regular revisada é proposta:

re1, _ := regexp.Compile(`([A-Z] )|(?: "([^"] )")`)

Esta expressão regular revisada corresponde a uma palavra maiúscula ou a uma string entre aspas duplas sem capturar as aspas circundantes. Essa abordagem permite uma melhor captura de argumentos repetidos, conforme demonstrado no seguinte trecho de código:

results := re1.FindAllStringSubmatch(`COMMAND "arg1" "arg2" "arg3"`, -1)

fmt.Println("Command:", results[0][1])
for _, arg := range results[1:] {
    fmt.Println("Arg:", arg[2])
}

Esta abordagem revisada captura com sucesso o comando e seus três argumentos e os imprime separadamente.

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