here is my string :
data = '2.5 Excavation et terrassement 2.7 Travaux d'emplacement 3.2 Petits ouvrages de béton 4.2 Travaux de maçonnerie non structurale marbre et céramique 5.2 Ouvrages métalliques 6.2 Travaux de bois et plastique 7 Isolation étanchéité couvertures et revêtement extérieur 8 Portes et fenêtres 9 Travaux de finition 11.2 Équipements et produits spéciaux 12 Armoires et comptoirs usinés 13.5 Installations spéciales ou préfabriquées 15.6 Propane 17.2 Intercommunication téléphonie et surveillance'
i want the result to be:
list = ['2.5 Excavation et terrassement', '2.7 Travaux d'emplacement', '3.2 Petits ouvrages de béton',...]
thanks in advance .
>Solution :
You can use re.findall:
print(re.findall(r'\d[\d.]*\D+[^\s\d]', data))
Explanation:
\d[\d.]*will match a digit followed by any number (zero included) of digits and dots\D+will match one or more non-digit characters[^\s\d]ensures the match doesn’t end with a space (equivalent of stripping) or a digit (that would belong to the next title)