2016-10-27 2 views
0

Wie kann ich in Java erkennen, ob das letzte Zeichen in der Zeichenfolge kein Buchstabe mit Regex ist?Wie erkennt man, ob das letzte Zeichen in der Zeichenfolge kein Buchstabe ist?

^.*?[^A-Za-z]$ 
+2

Funktioniert Ihre aktuelle Regex nicht? Sieht so aus, als ob es für mich wäre. – CollinD

+3

Ihre Regex sollte funktionieren. Was ist das Problem? – TheLostMind

+3

Der Unterschied zwischen "passt Zeichenfolge mit nicht buchstabengetreuem Endzeichen" vs "stimmt Zeichenfolge mit abschließendem Buchstabenzeichen nicht überein" ist, wie eine leere Zeichenfolge übereinstimmen würde. Also, je nachdem, was Sie wollen, versuchen Sie 'str.matches (". * \\ P {L} ")' oder '! str.matches (". * \\ p {L}") '. – Andreas

Antwort

0

Ihr Ausdruck sollte funktionieren. Aber eine einfachere Version str.matches(".*[^A-Za-z]" funktioniert auch

1

Ich weiß, dass es nicht direkt die Frage beantwortet, da es keine Regex verwendet, aber in diesem Fall wäre es nicht klarer, so etwas zu tun?

Character.isLetter(s.charAt(s.length()-1)) 

Wo s Ihr String ist.

Verwandte Themen