Heim >Backend-Entwicklung >Python-Tutorial >Python-String-Zahlenextraktion: Regex vs. isdigit() – Welche Methode ist die Beste?
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().
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]
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.
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.
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!