Java 如何检测字符串中的最后一个字符是否不是字母?
如何在Java中检测字符串中的最后一个字符是否不是带有regex的字母Java 如何检测字符串中的最后一个字符是否不是字母?,java,regex,Java,Regex,如何在Java中检测字符串中的最后一个字符是否不是带有regex的字母 ^.*?[^A-Za-z]$ 你的表情应该有用。然而,一个更简单的版本str.matches(“.[^a-Za-z]”)也可以用你的表达式应该可以用。然而一个更简单的版本str.matches(“.[^a-Za-z]”)也可以用我知道它没有直接回答这个问题,因为它没有使用正则表达式,但在这种情况下,这样做会不会更清楚 Character.isLetter(s.charAt(s.length()-1)) 其中s是您的字符串
^.*?[^A-Za-z]$
你的表情应该有用。然而,一个更简单的版本
str.matches(“.[^a-Za-z]”)也可以用你的表达式应该可以用。然而一个更简单的版本str.matches(“.[^a-Za-z]”)也可以用我知道它没有直接回答这个问题,因为它没有使用正则表达式,但在这种情况下,这样做会不会更清楚
Character.isLetter(s.charAt(s.length()-1))
其中s
是您的字符串。我知道它没有直接回答问题,因为它不使用正则表达式,但在这种情况下,这样做会不会更清楚
Character.isLetter(s.charAt(s.length()-1))
其中s
是您的字符串。您当前的正则表达式不起作用吗?在我看来是这样的。您的正则表达式应该起作用。问题是什么?与“使用非字母结尾字符匹配字符串”和“使用字母结尾字符不匹配字符串”之间的区别是空字符串的匹配方式。因此,根据需要,请尝试str.matches(“.*\\P{L}”)
或!str.matches(.*\\P{L}”)
。在if语句!str.substring(str.length()-1)中尝试此条件。matches([a-zA-Z])您当前的正则表达式不工作吗?在我看来是这样的。您的正则表达式应该可以工作。问题是什么?与“不匹配字符串与字母最终字符”之间的区别是空字符串的匹配方式。因此,根据您的需要,请尝试str.matches(.*\\P{L})
或!str.matches(.*\\p{L}”)
。请在if语句!str.substring(str.length()-1).matches(“[a-zA-Z]”)中尝试此条件