PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Perl: String formatieren mittels reg. Ausdrücken?



eislarsbaer
02-02-2007, 18:39
Hallo zusammen,

ich bin ein absoluter Perl-Anfänger und hoffe, Ihr könnt mir weiterhelfen.

Ich bekomme nach einer Datenbankabfrage Rückgabewerte, die ich in einem String speichern will, um sie danach weiterzuverarbeiten.
Diese Werte haben folgendes Format:
"000001002120082400"

Zur Weiterverarbeitung sollten sie dieses Format haben
"10.0212-0082.4" (also du nullen abschneiden, Punkt, Minus, Punkt, nullen abschneiden)

Funktioniert sowas mittels regulärer Ausdrücke?
Wenn ja, wie?

Vielen Dank für die Hilfe!!!

Viele Grüße
Kathrin

Molaf
03-02-2007, 08:21
Das entfernt schonmal die führenden und hinteren Nullen:

$variable =~ s/^0*|0*$//g; #(Ensetze Nullen am Anfang oder Nullen am Ende und suche bis zum Schluss weiter)

Wie es weitergeht kann ich noch nicht sagen, ist die Zahl stellenmässig immer gleich lang, also kommen Striche und Punkte immer an der gleichen Position hinein, oder gibt es weitere Regeln, die beachtet werden müssen?

mfg
Molaf

reneeb
03-02-2007, 08:48
#!/usr/bin/perl

use strict;
use warnings;

my $string = "000001002120082400";
$string =~ s/^0*(\d{2})(\d{4})(\d{4})(\d*?)0*$/$1.$2-$3.$4/;
print $string;

eislarsbaer
03-02-2007, 10:38
Vielen Dank für die Hilfe!
Beides funktioniert!!!

Im Moment bleibt es erstmal so mit dem Aufbau des Strings; hoffe, dass sich daran nix ändert bzw. der nich auch mal andersn aussehen kann :-/

DANKE!!!
Kathrin