Kann man in einem String alle Leerzeichen vor dem ersten Buchstaben entfernen ?
Stefan Priebe
- perl
Hallo !
mal angenommen, ich habe eine Variable...
$text = " Hallo DU";
Jetzt möchte ich daraus machen:
$text = "Hallo DU";
mit z.B. $text =~ s/ //ig;
mach ich aber:
$text = "HalloDU";
Gibt's da ne Lösung... Ich möchte also alle Leerzeichen vor auftauchen des ersten Buchstaben's entfernen...
Stefan
Ich möchte also alle Leerzeichen vor auftauchen des ersten Buchstaben's entfernen...
Wenn Du weißt, daß dort *nur* Leerzeichen stehen können, kannst Du den Zeilenanfang in den Treffer mit einbeziehen:
$text =~ s/^\s+//g;
Deine Aussage schließt aber nicht aus, daß dort noch andere Zeichen stehen können - dann würde es entsprechend komplizierter.
Ich möchte also alle Leerzeichen vor auftauchen des ersten Buchstaben's entfernen...
Wenn Du weißt, daß dort *nur* Leerzeichen stehen können, kannst Du den Zeilenanfang in den Treffer mit einbeziehen:
$text =~ s/^\s+//g;
Deine Aussage schließt aber nicht aus, daß dort noch andere Zeichen stehen können - dann würde es entsprechend komplizierter.
Kannst Du mir mal die bedeutung der einzelnen Sachen erklären ? Was bedeutet ^\s+ ??
Funktioniert perfekt !! Und erfüllt genau seinen Zweck !!
Stefan
Kannst Du mir mal die bedeutung der einzelnen Sachen erklären ? Was bedeutet ^\s+ ??
Funktioniert perfekt !! Und erfüllt genau seinen Zweck !!
"^" ist der Anfang der zu verarbeitenden Zeichenkette. ("$" wäre der Schluß.)
"\s" ist ein "Space" - ich glaube, das sind alle Whitespaces (also auch Tabulatorzeichen usw.).
"+" bezogen auf den vorherigen Term - hier ist er so einfach, daß man ihn nicht klammern muß - heißt "beliebig viele, aber mindestens einer".
Siehe Perl-Doku, Kapitel "regular expressions". (Ich muß auch immer wieder nachsehen, die können halt soooo viel ...)
Was genau genommen bedeutet, daß das "g" am Ende nun überflüssig ist ... (Ich sehe schon Frank kommen und es noch wegoptimieren. ;-)