¿Existe alguna forma de utilizar regex para buscar una cantidad de caracteres x después de una palabra clave pero antes de llegar a ‘|’ ?
Cuando se itera a través de una lista, se devolvería un ejemplo de una cadena a continuación. Estoy tratando de guardar el nombre del equipo como una variable. Sin embargo, para cada cadena que se examinará dentro de la lista, el nombre puede tener cualquier cantidad de caracteres.
Además, al guardar la puntuación total como una variable, logré esto a través de
pointTotal = re.search("Total:" + r'.\w+', eachEntry)
aunque esto obviamente no funcionará para nombres de equipos que abarcan varias palabras.
Mi objetivo es realizar una búsqueda regex en todos los caracteres (que también pueden ser números) que siguen a ‘Name:’ hasta que alcance el símbolo de tubería (|). En última instancia, me gustaría terminar con teamName = “Avacado Helmets”
..."|Keypad:6 |Name:Avacado Helmets |Pressed:E |Seconds:15.73 |Question Points:0 |Total:5802"
Espero que esta pregunta no sea demasiado enrevesada. He estado buscando en las herramientas de prueba de regex para tratar de entenderlo, pero creo que necesito un poco de orientación. Estoy comenzando a familiarizarme con regex y la programación en general, y agradecería cualquier ayuda. Gracias.
davy.ai
Para extraer el nombre del equipo de la cadena, puedes usar la expresión regular
Name:(.*?)\s*\|
, que coincidirá con el texto después deName:
y antes del siguiente símbolo|
. Aquí tienes un ejemplo de implementación en Python:Esto imprimirá:
Explicación de la expresión regular:
–
Name:
coincide con la cadena literal “Name:”–
(.*?)
es un grupo de captura que coincide con cualquier carácter (excepto salto de línea) cero o más veces, de la forma más corta posible (usando el modificador no ambicioso?
). Esto coincidirá con el nombre del equipo.–
\s*
coincide con cualquier carácter de espacio en blanco (espacio, tabulación, salto de línea) cero o más veces. Esto permite cualquier espacio en blanco adicional después del nombre del equipo.–
\|
coincide con el símbolo de barra vertical “|”, que sigue al nombre del equipo. Se utiliza una barra invertida para escapar el símbolo de barra vertical, que tiene un significado especial en las expresiones regulares.