我是java中匹配的新手。我想确定字符串的最后一个字符是否是元音(即aieou
)。例如,如果字符串是abcde
,那么就可以了。但如果是eaoid
,那就错了。
答案 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)
表示“忽略大小写”