[Python-es] problema con "regular expression"

Jose Caballero jcaballero.hep en gmail.com
Lun Ago 17 09:44:02 EDT 2020


Hola,

tengo una serie de lineas, todas con el mismo formato:

    <type>: <value>

donde <type> es una sola palabra, y <value> es una frase.
Intentaba "parsearlas" con algo como esto:

    pattern = re.compile("^(?P<type>(.*)): (?P<value>(.*))$")
    parse = pattern.match(line)
    groups = parse.groupdict()
    print( groups["type"] )
    print( groups["value"] )

Funciona bien, salvo que <value> incluya el signo de los dos puntos.
Por ejemplo, para

         one: two: three four

Me devuelve type = "one: two" y value "three four", en lugar de "one"
y "two: three four" respectivamente.

?Como arreglo ese pattern para que el primer "lookahead" pare en el primer ":"?
[Creo que se nota que tengo poca experiencia con regex]

Muchas gracias.
Un saludo,
Jose


Más información sobre la lista de distribución Python-es