Captura de grupos repetidos en GO
Al intentar analizar cadenas que siguen un formato específico, como palabras en mayúsculas seguidas de cero o más dobles -argumentos entrecomillados, es necesario definir una expresión regular que capture los elementos deseados. En el escenario proporcionado, el intento de capturar argumentos repetidos utilizando la siguiente expresión regular:
re1, _ := regexp.Compile(`([A-Z] )(?: "([^"] )")*`)
no pudo capturar todos los argumentos correctamente. Para resolver este problema, se propone una expresión regular revisada:
re1, _ := regexp.Compile(`([A-Z] )|(?: "([^"] )")`)
Esta expresión regular revisada coincide con una palabra en mayúscula o una cadena entre comillas dobles sin capturar las comillas circundantes. Este enfoque permite una mejor captura de argumentos repetidos, como se demuestra en el siguiente fragmento 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]) }
Este enfoque revisado captura con éxito el comando y sus tres argumentos y los imprime por separado.
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