我有以下单词列表:
List<String> words = Arrays.asList("Tom", "Emily", "Kate","Ava","Mark");
要查找一个返回以元音[a,e,i,o,u]
开头的单词列表的Java正则表达式吗?
答案 0 :(得分:2)
^
字符标记字符串的开头,您可以使用方括号来选择以下选项之一:
Pattern p = Pattern.compile("^[aeiou].*", Pattern.CASE_INSENSITIVE);
List<String> startingWithVowels =
words.stream().filter(w -> p.matcher(w).matches()).collect(Collectors.toList());
答案 1 :(得分:1)
您可能会使用java-stream找到以元音开头的单词:
T&&
或使用Iterator<String>
从列表中删除不需要的项目:
words = words.stream()
.filter(word -> word.toUpperCase()
.matches("[AEIOU].*"))
.collect(Collectors.toList());
Iterator<String> iterator = words.iterator();
while (iterator.hasNext()) {
if (!iterator.next().toUpperCase().matches("[AEIOU].*")) {
iterator.remove();
}
}
上的这两个都将导致:
[艾米丽(Ami),艾瓦(Ava)]
答案 2 :(得分:1)
您可以使用以下命令:/ [AEIOUaeiou] \ w + /