text = "Life is beautiful"
pattern = r"[aeiou]{3,}"
result = re.findall(pattern, text)
print(result)
期望结果:
['beautiful']
我得到的输出是:
['eau']
我尝试了谷歌搜索等方法......我找到了多个答案,但都没有用!! 我是正则表达式方面的新手,所以可能存在问题,但我不确定如何使其输出
我尝试使用r"\b[abcde]{3,}\b"
,但仍然没有输出,请帮助我!!
\b[a-z]+[aeiou]{3,}[a-z]+\b
,它输出了相同的结果!!您能解释一下那里的 ?= 是做什么用的吗? - Prab"显然,女王是勇敢和优雅的。"
因为它跳过了“显然”但打印了其余部分! - Prab(?=
是一个前瞻断言,它断言在解析的那一点(单词分隔符之后)有一些字母后跟着3个元音字母。你所做的本质上是相同的,前瞻并不是必要的。如果使用re.I
标志,正则表达式对于Obviously
确实有效,请参见 https://ideone.com/P3yI1V - Nicktext
是一个列表,而不是一个字符串;你需要单独搜索text
中的每个字符串,类似于for t in text: result= re.findall(pattern, t,re.I) print(result)
。 - Nick