Ich schlage vor,
zu verwenden %Vor%Es passt optionale Leerzeichen und Interpunktion am Ende der Zeichenfolge.
Wenn Ihnen der Leerraum egal ist, verwenden Sie einfach \p{Punct}+$
.
Vergessen Sie nicht, dass Backslashes in Java-Strings verdoppelt werden sollten, um literale Backslashes zu bezeichnen (die als Regex-Escape-Symbole verwendet werden müssen).
%Vor%Ich habe die Logik Ihrer Methode geändert
%Vor% und Ihre Regex ist: regex = ".*[^a-zA-Z]$";