Ich versuche, einen regulären Java-Ausdruck zu erhalten, um zu versuchen, eine Benutzereingabe mit der Scanner
System.in
Funktion zu validieren. Was ich zu validieren versuche, ist eine Benutzereingabe, die nur Buchstaben als Eingabe enthalten kann und mehr als ein Wort enthalten kann. Wenn ich zum Beispiel ("Test1") eintippe, wird es eine Nachricht ausgeben, die darauf hinweist, dass ich nur Buchstaben eingeben muss, und sie erneut eingeben muss, wenn ich jedoch ("Test 1") eingeben soll würde durch meine Regex passieren, scheint es, dass der Raum dieses Problem verursacht, aber ein Leerzeichen in meinem Regex hinzufügen hat mein Problem nicht gelöst. Jede Hilfe würde sehr geschätzt werden. Unten ist der Abschnitt meines Code, der die Probleme ist mit:Java Scanner hasNext() String Regex Validierung
System.out.println("Please enter the your name: ");
while(!input.hasNext("[a-zA-Z]+")){
System.out.println("Your name must consist of only letters");
input.nextLine();
}
String name = input.nextLine();
Dies jemand eindeutig falsch sein kann, aber ich bin neu in Java und regex und versucht haben, den ganzen Tag, um herauszufinden, was mit so schiefgelaufen Kein Erfolg.
Vielen Dank für Ihre Zeit.
Versuchen Sie '^ [a-zA-Z_] * $' Es ist nicht perfekt, aber es ist einfach genug für einen Neuling zu verstehen. – TEK
Vielleicht '^ [a-zA-Z_] + $' so sind leere Strings nicht erlaubt. – totoro