Heim >Backend-Entwicklung >Python-Tutorial >Python-String-Zahlenextraktion: Regex vs. isdigit() – Welche Methode ist die Beste?

Python-String-Zahlenextraktion: Regex vs. isdigit() – Welche Methode ist die Beste?

Mary-Kate Olsen
Mary-Kate OlsenOriginal
2024-12-25 10:47:39536Durchsuche

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

So extrahieren Sie Zahlen aus einer Zeichenfolge in Python: Reguläre Ausdrücke vs. isdigit()

Beim Umgang mit Textdaten, die sowohl Text als auch Zahlen enthalten, kann dies der Fall sein notwendig, um die numerischen Werte aus der Zeichenfolge zu extrahieren. Zwei gängige Methoden zum Ausführen dieser Aufgabe in Python sind reguläre Ausdrücke und die Methode isdigit().

Ansatz für reguläre Ausdrücke

Reguläre Ausdrücke (Regex) bieten eine leistungsstarke Möglichkeit, Muster innerhalb einer Zeichenfolge abzugleichen. Um Zahlen zu extrahieren, können Sie das d-Muster verwenden, das einer oder mehreren Ziffern entspricht. Betrachten Sie das Beispiel:

import re

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

Dieser reguläre Ausdruck gleicht die Ziffernfolgen „12“ und „89“ ab und gibt sie als Liste zurück. Um nur Zahlen abzugleichen, die durch Wortgrenzen (z. B. Leerzeichen, Punkte oder Kommas) getrennt sind, können Sie das b-Muster verwenden:

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

isdigit()-Methodenansatz

The isdigit ()-Methode bietet eine alternative Möglichkeit, Zahlen aus einer Zeichenfolge zu extrahieren. Diese Methode gibt True für Zeichen zurück, die Ziffern sind, andernfalls False. Um es zu verwenden, können Sie die Zeichenfolge durchlaufen und jedes Zeichen überprüfen:

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

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

In diesem Beispiel iteriert die Methode jedes Zeichen in der Zeichenfolge, prüft mit isdigit(), ob es sich um eine Ziffer handelt, und Hängt es an die Zahlenliste an, wenn dies der Fall ist.

Leistungsüberlegungen

Im Allgemeinen ist die Verwendung regulärer Ausdrücke effizienter, um Zahlen aus einer Zeichenfolge zu extrahieren als die Methode isdigit() zu verwenden. Reguläre Ausdrücke können komplexe Muster schnell abgleichen, während isdigit() das Durchlaufen der gesamten Zeichenfolge erfordert.

Hinweis für negative Ganzzahlen

Wenn Sie auch negative Ganzzahlen extrahieren müssen, bietet der Regex-Ansatz eine einfachere Lösung. Verwenden Sie einfach r'-d ', um negative Ziffern abzugleichen. Die Verwendung von isdigit() würde jedoch eine komplexere Logik erfordern, um negative Vorzeichen zu verarbeiten.

Das obige ist der detaillierte Inhalt vonPython-String-Zahlenextraktion: Regex vs. isdigit() – Welche Methode ist die Beste?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn