PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : perl, variablenbearbeitung...



otelo
22-05-2002, 17:43
Moin,

wie kann ich in Perl den Inhalt einer Variable zB $phone bearbeiten so dass diese nur Zahlen am ende beinhaltet und keine Buchstaben oder Zeichen wie zb / - * \ oder Leerzeichen?

ich kenne den Befehl (am Rande)

$phone=~ s/-//;

aber wie bekomme ich es hin, dass er alle Sachen umwandelt ?

Gruss und Danke
otelo

ponzellus
22-05-2002, 18:13
hi!

wenn du alle zeichen, die keine ziffern sind, loeschen willst, geht das so:

$phone =~ s/[^0-9]*//g;

MfG ponzellus

otelo
22-05-2002, 18:17
danke ponzellus,

kannst du mir evtl. kurz die Syntax von dem Befehl erklären,

was genau bedeutet ^ und das *
was bedeutet des g am schluss?


aber nur wenns dir nicht zuviel arbeit macht :-)

Gruss otelo

ponzellus
22-05-2002, 19:05
kein problem :)
also das sind eigentlich "nur" Regulaere Ausdruecke ;)

die "[]" stellen sozusagen einen bereich moeglicher zeichen dar
die 0-9 steht fuer alles zwischen 0-9, also alle ziffern
das "^" negiert die Bedingung, also alles ausser 0-9
das "*" bedeutet, das das zeichen, hinterdem es steht entweder null mal oder so oft hinternandern kommen muss ( habe eben bemerkt, dass das hier ueberfluessig ist, wegen dem "g")
das "g" steht naemlich dafuer, das der gefundene ausdruck in der ganzen zeile behandelt wird, und die nur der erste treffer

das hoert sich wahrscheinlich ziemlich verwirrend an, ist es am anfang auch. Aber wenn du die RegEx's verstanden hast, sind sie richtig genial :) (ich kenne selber noch nicht alle zeichen, in dem link unten stand z.b. noch, das man anstatt "[^0-9]" auch einfach nur "\D" haette machen koennen ;))

hier der link:


wenn du ein perl-buch hast, muesste da auch was ueber regex's drinstehen

Viele Gruesse
ponzellus

otelo
22-05-2002, 19:13
cool danke für die ausführliche Antwort!!!!!!
habs verstanden, muss wir wohl doch mal Perl in a Nutshell zulegen oder so

gruss otelo

elrond
23-05-2002, 11:56
ich habe "Perl-Einführung,Anwendungen,Referenz" ,Addison-Wesley, Farid Haijj. Da steht eine ganze menge zu regexp drin. Nicht wirklich trivial erklärt, aber wenn mann sich einmal eingelesen hat ist's klasse.:cool: