On Thu, Apr 30, 2020 at 3:21 PM Alessandro T. <taglia...@yahoo.it> wrote:

> Il 30/04/20 14:11, Marco Beri ha scritto:
>
> > La soluzione per te sono le regular expression:
> >
> >
> >     >>> testo = """lunghezza legno: 1000 cm
> >     ... peso del tronco: 34 kg
> >     ... tempo di lavorazione: 11 ore 57 minuti"""
> >     >>> testo
> >     'lunghezza legno: 1000 cm\npeso del tronco: 34 kg\ntempo di
> >     lavorazione: 11 ore 57 minuti'
> >     >>> import re
> >     >>> re.findall(r"\s(\d+)\b\s*(\w+)", testo)
> >     [('1000', 'cm'), ('34', 'kg'), ('11', 'ore'), ('57', 'minuti')]
> >
> >
> >
> > Potrei consigliarti un buon testo sulle regex ma sarei in conflitto di
> > interessi (e poi trovi comunque una marea di tutorial su web) :-D
> >
> > Ciao.
> > Marco.
> >
>
> Elegante come soluzione però incorretta perché il "tempo di lavorazione"
> viene spezzato in "11 ore" e "57 min". Forse uno split() sulla singola
> riga è più indicato.
>

Pronti! :-)

>>> import re
>>> testo = """lunghezza legno: 1000 cm
... peso del tronco: 34 kg
... tempo di lavorazione: 11 ore 57 minuti"""
>>> re.findall(r"\s(\d+)\s*(\w+)(\s\d+\s\w+)?", testo)
[('1000', 'cm', ''), ('34', 'kg', ''), ('11', 'ore', ' 57 minuti')]


Ciao.
Marco.
_______________________________________________
Python mailing list
Python@lists.python.it
https://lists.python.it/mailman/listinfo/python

Rispondere a