Maison >développement back-end >Tutoriel Python >Extraction de numéros de chaîne Python : Regex vs isdigit() - Quelle méthode est la meilleure ?

Extraction de numéros de chaîne Python : Regex vs isdigit() - Quelle méthode est la meilleure ?

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2024-12-25 10:47:39542parcourir

Python String Number Extraction: Regex vs. isdigit() - Which Method is Best?

Comment extraire des nombres d'une chaîne en Python : expressions régulières vs isdigit()

Lorsque vous traitez des données texte contenant à la fois du texte et des nombres, cela peut être nécessaire pour extraire les valeurs numériques de la chaîne. Deux méthodes courantes pour effectuer cette tâche en Python sont les expressions régulières et la méthode isdigit().

Approche des expressions régulières

Les expressions régulières (regex) offrent un moyen puissant de faire correspondre des modèles dans une chaîne. Pour extraire des nombres, vous pouvez utiliser le modèle d, qui correspond à un ou plusieurs chiffres. Prenons l'exemple :

import re

line = "hello 12 hi 89"
numbers = re.findall(r'\d+', line)
print(numbers)
# Output: [12, 89]

Cette expression régulière correspond aux séquences de chiffres "12" et "89" et les renvoie sous forme de liste. Pour faire correspondre uniquement les nombres délimités par des limites de mots (telles que des espaces, des points ou des virgules), vous pouvez utiliser le modèle b :

numbers = re.findall(r'\b\d+\b', line)
print(numbers)
# Output: [12, 89]

Approche de la méthode isdigit()

L'approche isdigit () fournit une autre manière d’extraire des nombres d’une chaîne. Cette méthode renvoie True pour les caractères qui sont des chiffres et False dans le cas contraire. Pour l'utiliser, vous pouvez parcourir la chaîne et vérifier chaque caractère :

line = "hello 12 hi 89"
numbers = []

for char in line:
    if char.isdigit():
        numbers.append(int(char))
print(numbers)
# Output: [12, 89]

Dans cet exemple, la méthode parcourt chaque caractère de la chaîne, vérifie s'il s'agit d'un chiffre à l'aide de isdigit() et l'ajoute à la liste des nombres si c'est le cas.

Considérations relatives aux performances

En général, l'utilisation d'expressions régulières est plus efficace pour extraire des nombres d'un chaîne plutôt que d’utiliser la méthode isdigit(). Les expressions régulières peuvent rapidement correspondre à des modèles complexes, tandis que isdigit() nécessite une itération sur la chaîne entière.

Remarque concernant les entiers négatifs

Si vous devez également extraire des entiers négatifs, l'approche regex fournit un solution plus simple. Utilisez simplement r'-d' pour faire correspondre les chiffres négatifs. Cependant, utiliser isdigit() nécessiterait une logique plus complexe pour gérer les signes négatifs.

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!

Déclaration:
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