Este dilema se puede resolver de variadas maneras, por lo tanto te dejamos la que en nuestra opinión es la resolución más completa.
Solución:
necesitas incluir .group()
después de la match
para que imprima la coincidencia string de lo contrario, solo muestra si ocurrió una coincidencia o no. Para imprimir los caracteres que son capturados por los grupos de captura, debe pasar el índice de grupo correspondiente al .group()
función.
>>> import re
>>> reg = re.compile("[a-z]+8?")
>>> str = "ccc8"
>>> print(reg.match(str).group())
ccc8
Regex con grupo de captura.
>>> reg = re.compile("([a-z]+)8?")
>>> print(reg.match(str).group(1))
ccc
re.match(patrón, string, banderas=0)
Si hay cero o más caracteres al principio de string coincide con el patrón de expresión regular, devuelve una instancia de MatchObject correspondiente. Devolver Ninguno si el string no coincide con el patrón; tenga en cuenta que esto es diferente de una coincidencia de longitud cero.
Tenga en cuenta que incluso en el modo MULTILINE, re.match() solo coincidirá al comienzo de la string y no al principio de cada línea.