Schrift
[thread]301[/thread]

RegEx für Zahlen: Alles muss raus! - Wenn's keine Zahl ist

Leser: 3


<< >> 8 Einträge, 1 Seite
cbxk1xg
 2004-06-19 16:28
#2923 #2923
User since
2003-10-20
496 Artikel
BenutzerIn
[default_avatar]
Hallo Freund der Sonne.

Ich habe ein kleines Problem. Ich muss aus einem String alles entfernen was keine Zahl ist. Also von 0 bis 9 und die Zeichen , . -

Leider bin ich nicht gerade der RegEx King. Ich weiss zwar wie ich ein Zeichen ersetzen kann und wie ich etwas rausstreichen kann, aber ich vermute es wäre sinnvoller das Ganze zu negieren. Also Quasi: if ($Input ne "Zahl") ....

Ich habe es hiermit versucht:
Code: (dl )
$value =~ s/([0-9])//g;


Aber das ist natürlich Quatsch, denn es werden nur alle Zahlen entfernt.

Hat Jemand 'ne Idee?
foobar
 2004-06-19 16:36
#2924 #2924
User since
2003-08-04
69 Artikel
BenutzerIn
[default_avatar]
Du kannst eine Menge von Zeichen mit ^ negieren:
Code: (dl )
$string =~ s/[^0-9.,-]+//gs;
\n\n

<!--EDIT|foobar|1087648639-->
The three chief virtues of a programmer are: Laziness, Impatience and Hubris
[Larry Wall]
cbxk1xg
 2004-06-19 16:46
#2925 #2925
User since
2003-10-20
496 Artikel
BenutzerIn
[default_avatar]
Danke! Man lernt eben nie aus.
jemand
 2004-06-19 23:31
#2926 #2926
User since
2004-05-14
231 Artikel
BenutzerIn
[default_avatar]
ich kann nur das perl tutorial von selfhtml empfehlen
steht [fast] alles was man so braucht drin
zB: alle ziffern auch \d
alle nichtziffern auch \D
print uc 'i',chr(29*4).q+'s +.++($_=q-m-),++$_;
print chr for 116,$_[0],97,$_[0],98;
print 'ug,',chr(), scalar reverse qq?!erutaef a s'ti?;
Strat
 2004-06-20 00:17
#2927 #2927
User since
2003-08-04
5246 Artikel
ModeratorIn
[Homepage] [default_avatar]
das tutorial von selfhtml ist arg kurz geraten, und auf saubere programmierung wird (wohl auf grund der kuerze) recht wenig eingegangen. Auf meiner HP steht eine "Einfuehrung in Perl" unter Vortraege, die die Basics etwas umfassender behandelt)
perl -le "s::*erlco'unaty.'.dk':e,y;*kn:ai;penmic;;print"
http://www.fabiani.net/
jemand
 2004-06-20 20:05
#2928 #2928
User since
2004-05-14
231 Artikel
BenutzerIn
[default_avatar]
für mich hats immer gereicht
außerdem steht wesentlich mehr besser erklärt als in so manchem buch drin
naja mal deine ansehen
print uc 'i',chr(29*4).q+'s +.++($_=q-m-),++$_;
print chr for 116,$_[0],97,$_[0],98;
print 'ug,',chr(), scalar reverse qq?!erutaef a s'ti?;
Crian
 2004-06-20 21:56
#2929 #2929
User since
2003-08-04
5866 Artikel
ModeratorIn
[Homepage]
user image
Nur als ergänzender Hinweis: \d ist nicht mit [0-9.,-] identisch. Und foobar hat diese Zeichen bestimmt mit Bedacht mit angefügt.
s--Pevna-;s.([a-z]).chr((ord($1)-84)%26+97).gee; s^([A-Z])^chr((ord($1)-52)%26+65)^gee;print;

use strict; use warnings; Link zu meiner Perlseite
steffenw
 2004-06-21 11:40
#2930 #2930
User since
2003-08-15
692 Artikel
BenutzerIn
[Homepage] [default_avatar]
mit . und , meint er Zahlen wie
1
1,23
1.000
1.000.000,23
Code: (dl )
$string =~ s/-?(?:\d+\.)*\d+(?:,\d+)?//gs;
$SIG{USER} = sub {love 'Perl' or die};
<< >> 8 Einträge, 1 Seite



View all threads created 2004-06-19 16:28.