[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