gudn tach!
ich fasse mal in diesem posting die loesungen von MudGuard und mir zusammen, weil der gesamtthread doch etwas unuebersichtlich geworden ist.
um zu testen, ob ein string $str mind. einen lateinischen buchstaben und mind. eine ziffer enthaelt, kann man z.b. folgende verschiedenen regexps verwenden:
print 'ziffer und buchstaben vorhanden' if $str=~/(?=[^a-z]*[a-z])(?=\D*\d)/i;
print 'ziffer und buchstaben vorhanden' if $str=~/[a-z].*\d|\d.*[a-z]/i;
print 'ziffer und buchstaben vorhanden' if $str=~/[a-z]/i && $str=~/\d/;
oder negiert (die negation laesst sich an verschiedenen stellen anwenden):
print 'ziffer oder buchstaben nicht vorhanden' if $str!~/(?=[^a-z]*[a-z])(?=\D*\d)/i;
print 'ziffer oder buchstaben nicht vorhanden' if !($str=~/(?=[^a-z]*[a-z])(?=\D*\d)/i);
# ohne klammern, waer's falsch, weil "!" staerker bindet. also falsch: if !$str=~/(?=[^a-z]*[a-z])(?=\D*\d)/i;
print 'ziffer oder buchstaben nicht vorhanden' if $str!~/[a-z].*\d|\d.*[a-z]/i;
print 'ziffer oder buchstaben nicht vorhanden' if !($str=~/[a-z].*\d|\d.*[a-z]/i);
print 'ziffer oder buchstaben nicht vorhanden' if !($str=~/[a-z]/i && $str!~/\d/);
print 'ziffer oder buchstaben nicht vorhanden' if $str!~/[a-z]/i || $str!~/\d/;
print 'ziffer oder buchstaben nicht vorhanden' if $str=~/^[^a-z]*$/i || $str=~/^\D*$/;
prost
seth