[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