On Thu, Apr 30, 2020 at 2:07 PM Paolo Miniussi <miniussipa...@gmail.com> wrote:
> Buongiorno > molto piacere Paolo. Sono iscritto alla list di Python e ho visto che in > questi giorni state trattando l'argomento relativo al conteggio delle > parole. > Ho un problema specifico relativo all'estrazione di alcune stringhe che > seguono altre stringhe. > In pratica ho un testo tipo questo: > lunghezza legno: 1000 cm > peso del tronco: 34 kg > tempo di lavorazione: 11 ore 57 minuti > > Praticamente devo estrarre ciò che viene dopo le singole definizioni. > Quindi per la prima riga devo prelevare la stringa "1000 cm" , per la > seconda "34 kg" e via così (poi dovrò eventualmente capire se prendere solo > il valore numero oppure tutta la stringa). > Ho approcciato il problema usando lo slice e quindi tagliando le porzioni > di stringa desiderate per poi successivamente trasformarle in variabili. > Il problema è che il mio file di log che contiene queste informazioni da > estrarre può ovviamente variare di lunghezza e quindi lo slice va a farsi > benedire. > Per spiegarmi, il valore della "lunghezza legno:" invece di essere 1000 cm > può diventare 123000 cm quindi il taglio in slice mi troncherebbe il dato. > Stavo cercando di cambiare approccio e quindi di prelevare i dati > prendendo tutto quello che viene dopo una data stringa e prima di quella > successiva. > Avete qualche suggerimento? > 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.
_______________________________________________ Python mailing list Python@lists.python.it https://lists.python.it/mailman/listinfo/python