Eingabe auf Zahl prüfen

Datum: 2001-06-20
Quelle: suse-linux

Worum ging es?

Der nachfolgende Perl-Zweizeiler testet eine Eingabe darauf, ob es sich um eine Zahl handelt und gibt dann eine Bestätigung aus. Genauso kann man natürlich einen Returncode werfen lassen. Das Perl-Script kann auch mit mehrzeiligen Eingaben (z. B. aus Dateien) gefüttert werden.

Code
echo "1.23" | \
  perl -ne 'chomp; print "$_ ist eine Zahl / is a number\n"
             if /^[+-]?(?:\d+(?:[.,]\d*)?|[.,]\d+)$/;'
Beschreibung

Als Zahlen werden Eingaben nach folgenden Mustern erkannt:
Ganzzahlen, wahlweise mit Vorzeichen +/- (also z. B. 42 oder -42)
Zahlen mit Kommastellen (als Dezimaltrenner gelten Punkt oder Komma) - z. B. 4,2 oder 4.2 - auch wieder wahlweise mit Vorzeichen. Der Vor- oder der Nachkommaanteil kann wegfallen: .42 oder 42, sind gültig.