[Python] (senza oggetto)

Gollum1 gollum1.smeagol1 a gmail.com
Dom 3 Maggio 2020 15:40:17 CEST


Il giorno gio 30 apr 2020 alle ore 15:35 Marco Beri
<marcoberi a gmail.com> ha scritto:
>
> 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')]
>
>

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...


Maggiori informazioni sulla lista Python