You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Python中查找语料库中aeiouy按指定顺序出现的单词

按顺序匹配aeiouy字母的单词实现方案

你只需要修改正则表达式的匹配规则即可,不需要额外写复杂的判断逻辑。
原来的正则r'[aeiouy]'仅能匹配包含任意一个目标字母的单词,我们可以用.*通配符实现按顺序匹配的需求:

import nltk
import re

english = nltk.corpus.words.words()
# 匹配aeiouy按顺序出现的所有单词
words = [w for w in english if re.search(r'a.*e.*i.*o.*u.*y', w, re.IGNORECASE)]

规则说明

  • 正则中的.*代表匹配任意数量的任意字符,可兼容两个目标元音之间插入其他字母的场景,刚好匹配facetiously这类符合要求的单词
  • 添加re.IGNORECASE参数是为了兼容语料库中首字母大写的单词,无需区分大小写匹配;如果仅需要匹配全小写单词,去掉该参数即可

可选严格匹配规则

如果你要求aeiouy按顺序各出现一次,且相邻元音之间不会出现更靠后的目标元音(比如a和e之间不能出现i/o/u/y),可以使用更严格的正则:

words = [w for w in english if re.search(r'[^a]*a[^e]*e[^i]*i[^o]*o[^u]*u[^y]*y', w, re.IGNORECASE)]

内容的提问来源于stack exchange,提问作者Eddie14

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.25 10:06:03