Maison >développement back-end >Tutoriel Python >Comment puis-je extraire des nombres à virgule flottante d'une chaîne à l'aide d'expressions régulières en Python ?
Extraire des nombres à virgule flottante d'une chaîne à l'aide d'expressions régulières
En programmation, il est souvent nécessaire d'extraire des données de chaînes de texte. Dans ce cas, vous cherchez à extraire des nombres à virgule flottante à partir d'une chaîne telle que « Niveau actuel : 13,4 dB. »
Solution d'expression régulière
Utilisation d'expressions régulières , vous pouvez définir un modèle qui capture les nombres à virgule flottante. Considérons le code Python suivant :
import re string = "Current Level: 13.4db." result = re.findall(r"\d+\.\d+", string) print(result)
Ce code utilise le modèle d'expression régulière d .d :
La liste de résultats contiendra le nombre à virgule flottante extrait : ['13.4'].
Solution robuste avec validation
Pour une approche plus robuste, utilisez le modèle r"[- ]?(?:d*.*d )". Ce modèle gère à la fois les signes positifs et négatifs, ainsi que les chiffres facultatifs avant le point décimal.
result = re.findall(r"[-+]?(?:\d*\.*\d+)", string) print(result)
En plus de l'extraction, vous pouvez valider la saisie de l'utilisateur en essayant de la convertir directement en flottant :
user_input = "Current Level: 1e100 db" for token in user_input.split(): try: float_value = float(token) print(f"{float_value} is a float") except ValueError: print(f"{token} is something else")
Ce code parcourt les jetons de la chaîne d'entrée et tente de les convertir en flottants. Si une conversion réussit, le jeton est un float. Sinon, c'est considéré comme autre chose.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!