On Sun, May 3, 2020 at 3:40 PM Gollum1 <gollum1.smeag...@gmail.com> wrote:
> Il giorno gio 30 apr 2020 alle ore 15:35 Marco Beri > <marcob...@gmail.com> ha scritto: > > > >>> 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"? > No, evitare i gruppi vuoti che io sappia non si può (però puoi ignorarli facilmente da Python. Questa divide in due gruppi la terza: \s(\d+)\s*(\w+)(?:\s(\d+)\s(\w+))? import re testo = """lunghezza legno: 1000 cm peso del tronco: 34 kg tempo di lavorazione: 11 ore 57 minuti""" print(re.findall(r"\s(\d+)\s*(\w+)(?:\s(\d+)\s(\w+))?", testo)) [('1000', 'cm', '', ''), ('34', 'kg', '', ''), ('11', 'ore', '57', 'minuti')] Ciao. Marco.
_______________________________________________ Python mailing list Python@lists.python.it https://lists.python.it/mailman/listinfo/python