seth_not@home: zusammenfassung des threads: Suche Buchstabe UND Zahl

Beitrag lesen

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