Il giorno gio 30 apr 2020 alle ore 15:35 Marco Beri <marcob...@gmail.com> ha scritto: > > 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')] > >
Grande Marco, ormai ci metti le regexp ovunque... non per niente ci hai scritto un bellissimo libro... :.P questo tuo modo, avrebbe il vantaggio che si trova nelle varie tuple i valori e le grandezze... però non sarebbe possibile fare le tuple con i campi necessari? per esempio, eliminare il campo vuoto nelle prime due, e separare uletriormente la terza in '57' , "minuti"? Byez -- Gollum1 - http://www.gollumone.it Tesssssoro, dov'é il mio tessssoro... _______________________________________________ Python mailing list Python@lists.python.it https://lists.python.it/mailman/listinfo/python