newwarrior
Erfahrenes Mitglied
Hallo,
ich bin gerade dabei Java zu lernen, und stoße gerade bei Regulären Ausdrücken an ein Problem.
Und zwar habe ich ein kleines Script geschrieben um Passwörter zu überprüfen ob sie Klein und Großbuchstaben sowie Zahlen und Sonderzeichen enthalten und ob sie min. 16 Zeichen lang sind:
Folgender Teil macht mir Probleme:
Wenn ich es ja nicht falsch verstanden habe ist:
\\p{Punct}{1,1} => min. 1 Zeichen ein Sonderzeichen
\\w{1,1} => min 1. Zeichen ein Buchstabe
\\d{1,1} => min. 1 Zeichen eine Zahl
Doch es klappt nicht.
Habe ich einen Operator vergessen?
ich bin gerade dabei Java zu lernen, und stoße gerade bei Regulären Ausdrücken an ein Problem.
Und zwar habe ich ein kleines Script geschrieben um Passwörter zu überprüfen ob sie Klein und Großbuchstaben sowie Zahlen und Sonderzeichen enthalten und ob sie min. 16 Zeichen lang sind:
Java:
import java.util.*;
import java.util.regex.Pattern;
public class Hello
{
public static void main( String[] args )
{
Scanner sc = new Scanner(System.in);
int pwd_length = 16;
System.out.println("Bitte geben Sie das Passwort ein was überprüft werden soll: ");
String password_user = sc.nextLine();
if (Pattern.matches( "\\p{Punct}{1,1}\\w{1,1}\\d{1,1}", password_user ) == true)
{
if(password_user.length() >= pwd_length)
System.out.println("Herzlichen Glückwunsch ihr Passwort, entspricht den Höchsten Sicherheitsvorschriften");
else
System.out.printf("Ihr Passwort ist zu kurz, es mus min. %d Zeichen lang sein", pwd_length);
}
else
System.out.println("Ihr Passwort muss folgenden Angaben entsprechen: a-z A-Z 1-9 und Sonderzeichen");
}
}
Folgender Teil macht mir Probleme:
Java:
Pattern.matches( "\\p{Punct}{1,1}\\w{1,1}\\d{1,1}", password_user )
Wenn ich es ja nicht falsch verstanden habe ist:
\\p{Punct}{1,1} => min. 1 Zeichen ein Sonderzeichen
\\w{1,1} => min 1. Zeichen ein Buchstabe
\\d{1,1} => min. 1 Zeichen eine Zahl
Doch es klappt nicht.
Habe ich einen Operator vergessen?
Zuletzt bearbeitet: