Schrift
[thread]12831[/thread]

regulärer Ausdruck - dateiname (Seite 2)

Leser: 2


<< |< 1 2 >| >> 15 Einträge, 2 Seiten
Linuxer
 2008-11-27 12:16
#116657 #116657
User since
2006-01-27
3887 Artikel
HausmeisterIn

user image
Um wirklich sauber zu sein, egal welche Modifier man im Regex setzt, dann sollte man nicht ^ und $ als Anker einsetzen. Es gibt Alternativen, die explizit für Stringanfang und -ende gedacht sind.
meine Beiträge: I.d.R. alle Angaben ohne Gewähr und auf Linux abgestimmt!
Die Sprache heisst Perl, nicht PERL. - Bitte Crossposts als solche kenntlich machen!
Crian
 2008-11-27 12:30
#116658 #116658
User since
2003-08-04
5866 Artikel
ModeratorIn
[Homepage]
user image
Warum?

Hast du ein Beispiel dafür? Ich benutze immer ^ und $ - was natürlich nicht automatisch ein Grund dafür ist, dass das auch gut ist.
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
pq
 2008-11-27 13:09
#116660 #116660
User since
2003-08-04
12208 Artikel
Admin1
[Homepage]
user image
nepos+2008-11-27 11:10:08--
Was soll daran falsch sein?

lies einfach meinen hinweis oben und schau in der doku nach, was der unterschied zwischen $ und \z ist.
natürlich ist es unwahrscheinlich, dass dort dateinamen mit newlines rumliegen, und ich matche auch
oft mit $, wo ich es nicht sollte. aber wenn man jemandem ne lösung vor die füsse wirft, wird er
nie lernen, in der doku nachzuschauen.
Always code as if the guy who ends up maintaining your code will be a violent psychopath who knows where you live. -- Damian Conway in "Perl Best Practices"
lesen: Wiki:Wie frage ich & perlintro Wiki:brian's Leitfaden für jedes Perl-Problem
pq
 2008-11-27 13:13
#116661 #116661
User since
2003-08-04
12208 Artikel
Admin1
[Homepage]
user image
Crian+2008-11-27 11:30:33--
Hast du ein Beispiel dafür? Ich benutze immer ^ und $ - was natürlich nicht automatisch ein Grund dafür ist, dass das auch gut ist.

Code: (dl )
1
2
3
4
5
perl -wle'
my $string = "word\n";
print "string contains only word characters and nothing else" if $string =~ m/^\w+$/;
'
string contains only word characters and nothing else

in den meisten Fällen ist $ zwar ok, weil man oft garantieren kann, dass kein newline enthalten ist,
aber das ist halt so ein beispiel, wo es daneben geht. ich finde es schlecht dokumentiert, es wird in
der doku zu wenig auf \z eingegangen.
Always code as if the guy who ends up maintaining your code will be a violent psychopath who knows where you live. -- Damian Conway in "Perl Best Practices"
lesen: Wiki:Wie frage ich & perlintro Wiki:brian's Leitfaden für jedes Perl-Problem
Crian
 2008-11-28 13:36
#116687 #116687
User since
2003-08-04
5866 Artikel
ModeratorIn
[Homepage]
user image
Ja gut, den Fall mit Newlines in den Strings hatte ich ja schon erwähnt. Sowas verhindere ich vorher, aber du hast Recht, darauf hinzuweisen kann nicht schaden.

Und fertige Lösungen bei offensichtlicher Faulheit vorzusetzen finde ich auch nicht gut.
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
<< |< 1 2 >| >> 15 Einträge, 2 Seiten



View all threads created 2008-11-26 22:35.