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 ?

Comment puis-je extraire des nombres à virgule flottante d'une chaîne à l'aide d'expressions régulières en Python ?

DDD
Libérer: 2024-12-03 10:25:10
original
108 Les gens l'ont consulté

How Can I Extract Floating-Point Numbers from a String Using Regular Expressions in 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)
Copier après la connexion

Ce code utilise le modèle d'expression régulière d .d :

  • d : correspond à un ou plusieurs chiffres, représentant la partie numérique entière du float.
  • .: Correspond au point décimal.
  • d : Correspond à un ou plusieurs chiffres après le point décimal, représentant la partie fractionnaire du flottant.

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)
Copier après la connexion

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")
Copier après la connexion

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!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal