使用string.matches检查最后一个字符是否为元音

时间:2013-05-08 04:10:03

标签: java regex

我是java中匹配的新手。我想确定字符串的最后一个字符是否是元音(即aieou)。例如,如果字符串是abcde,那么就可以了。但如果是eaoid,那就错了。

2 个答案:

答案 0 :(得分:10)

str.matches(".*[aeiou]$");

.*匹配任何字符零次或多次
[aeiou]匹配集合中的一个字符 $匹配字符串的结尾。

所以"abcde".matches(".*[aeiou]$") == true"eaoid".matches(".*[aeiou]$") == false

答案 1 :(得分:4)

java中的matches()方法必须必须是整个字符串才能返回true,因此您需要使用.*启动正则表达式并完成它使用字符类(字符列表周围的方括号),这是说“其中一个字符”的正则表达方式

如果要匹配以大写或小写元音结尾的字符串:

str.matches(".*[AEIOUaeiou]");

甚至更简单:

str.matches(".*(?i)[aeiou]");

正则表达式(?i)表示“忽略大小写”