Utilizando re
en Python, me gustaría devolver todos los caracteres en una cadena que precede a la primera aparición de un guión bajo. Además, me gustaría que la cadena que se está devolviendo esté en mayúsculas y sin caracteres no alfanuméricos.Devolver todos los caracteres antes del primer guión bajo
Por ejemplo:
AG.av08_binloop_v6 = AGAV08
TL.av1_binloopv2 = TLAV1
Estoy bastante seguro de que sabe cómo devolver una cadena en mayúsculas utilizando string.upper()
pero estoy seguro de que hay varias formas de eliminar el .
eficiente. Cualquier ayuda sería muy apreciada. Todavía estoy aprendiendo expresiones regulares lenta pero seguramente. Cada consejo se agrega a mis notas para uso futuro.
Para aclarar más, mis ejemplos anteriores no son las cadenas reales. La cadena real se vería así:
AG.av08_binloop_v6
Con mi salida deseada que parece:
AGAV08
Y el siguiente ejemplo de ello sería la misma. Cuerda:
TL.av1_binloopv2
salida deseada:
TLAV1
Una vez más, gracias a todos por la ayuda!
+1 "en la especificación", se ve bien, pero no soy un gurú regex. Editar: reemplazaría 're.search' con' re.match' y soltaría el '^' inicial en el patrón ('match' siempre comienza al comienzo de la cadena y está optimizado para esto). – delnan
Aunque me gusta la simplicidad de las otras respuestas, también quería que cualquier solución que fuera me resultara útil para una mayor exploración de expresiones regulares. Éste ajusta a la ley. Gracias Gumbo! – durandal
Solo para conocimiento futuro, ¿cómo se haría esto con '' re.compile''? Me gusta la naturaleza única de esto, pero sería bueno saberlo para el futuro. – durandal