[Python] (senza oggetto)

Marco Beri marcoberi a gmail.com
Gio 30 Apr 2020 15:34:26 CEST


On Thu, Apr 30, 2020 at 3:21 PM Alessandro T. <tagliare3 a 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.
-------------- parte successiva --------------
Un allegato HTML è stato rimosso...
URL: <http://lists.python.it/pipermail/python/attachments/20200430/0494665b/attachment.html>


Maggiori informazioni sulla lista Python