Regex: Zahlen in Text finden

Nutze /-?(?:\d{1,3}(?:,\d{3})+|\d+)(?:\.\d+)?/g, um alle Treffer in einem Text zu finden. Jedes Beispiel unten wurde mit diesem Muster getestet, und du kannst es mit vorgeladenem Beispieltext im Regex-Tester öffnen.

Aktualisiert am

/-?(?:\d{1,3}(?:,\d{3})+|\d+)(?:\.\d+)?/g
Im Regex-Tester öffnen

Beispieltext

Order 3 items at $4.50 each, save -2.5% on 1,200 units — 12345 in stock.

5 Treffer

3 4.50 -2.5 1,200 12345

So funktioniert das Muster

TeilBedeutung
-?Optionales Minuszeichen
\d{1,3}(?:,\d{3})+Zahlen mit Tausendertrennzeichen, wie 1,200
|\d+Oder einfache Ziffern
(?:\.\d+)?Optionaler Dezimalteil

Code-Beispiele

JavaScript

const matches = text.match(/-?(?:\d{1,3}(?:,\d{3})+|\d+)(?:\.\d+)?/g) ?? [];

Python

import re

matches = re.findall(r'-?(?:\d{1,3}(?:,\d{3})+|\d+)(?:\.\d+)?', text)

PHP

preg_match_all('/-?(?:\d{1,3}(?:,\d{3})+|\d+)(?:\.\d+)?/', $text, $m);
$matches = $m[0];

Hinweise und Einschränkungen

Entferne die Kommas, bevor du einen Treffer in eine Zahl umwandelst. Für Zahlen wie 1.200,50 (deutsche und viele andere Schreibweisen) tauschst du im Muster das Komma und den Punkt aus.

Häufige Fragen

Wie lautet die Regex, um Zahlen in Text zu finden?
/-?(?:\d{1,3}(?:,\d{3})+|\d+)(?:\.\d+)?/g — sie findet alle Treffer in einem Text. In der Tabelle oben siehst du, was jeder Teil macht.
Funktioniert es auch in Python und PHP?
Ja – die Code-Beispiele oben verwenden dasselbe Muster mit re in Python und preg-Funktionen in PHP.
Wie teste ich diese Regex?
Klicke auf „Im Regex-Tester öffnen“ – Muster, Flags und Beispieltext werden automatisch geladen, und Treffer werden beim Bearbeiten markiert.