> > Pero voy a echar un vistazo a "greedy".
No tiene mucha ciencia. Cuando aplicamos una expresión regular se nos presenta una duda. ¿Debería buscarse *la máxima extensión de texto que cumpla con ella, o sólo la mínima*? La primera opción es la "codiciosa" y es la que se aplica si no indicas lo contrario. On Mon, Aug 17, 2020 at 4:36 AM Jose Caballero <jcaballero....@gmail.com> wrote: > no parece: > > >>> p = re.compile("^(?P<type>(.*)):? (?P<value>([^:]*))$") > >>> > >>> l = "type: word: foo bar" > >>> > >>> m = p.match(l) > >>> print m.groupdict() > {'type': 'type: word: foo', 'value': 'bar'} > >>> > > Pero voy a echar un vistazo a "greedy". > Muchas gracias. > > Jose > > El lun., 17 ago. 2020 a las 15:25, Ander Garmendia > (<kelertx...@gmail.com>) escribió: > > > > Hola, > > > > Las expresiones tipo(. *) son "greedy", esto es se expanden "a todo lo > que pillen". Si quieres limitar el match al primer grupo, añade un ? al > carácter de corte: > > > > pattern = re.compile("^(?P<type>(.*)):? (?P<value>([^:]*))$") > > > > Si buscas "greedy" en el apartado de la librería "re" en la > documentacion oficial, lo explican mucho mejor. > > > > Un saludo. > > > > Jose Caballero <jcaballero....@gmail.com> igorleak hau idatzi zuen > (2020 abu. 17, al. 15:45): > >> > >> 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 > >> _______________________________________________ > >> Python-es mailing list > >> Python-es@python.org > >> https://mail.python.org/mailman/listinfo/python-es > > > > _______________________________________________ > > Python-es mailing list > > Python-es@python.org > > https://mail.python.org/mailman/listinfo/python-es > _______________________________________________ > Python-es mailing list > Python-es@python.org > https://mail.python.org/mailman/listinfo/python-es >
_______________________________________________ Python-es mailing list Python-es@python.org https://mail.python.org/mailman/listinfo/python-es