我试图获得所有3个字母的单词。他们以双字母结尾,并以字母'a'开头。
喜欢:app,add,all,arr,aoo,aee
我尝试了这个但是它并没有很好地运作......
words =re.findall(r" a(\w)\1* ",text)
2 个答案:
答案 0 :(得分:3)
我认为您需要使用+
代替*
:
words = re.findall(r"\ba(\w)\1+\b", text)
否则,您将使用非双字母匹配。还可以使用\b
来检测字边界。
答案 1 :(得分:3)
您正在使用
words =re.findall(r" a(\w)\1* ",text)
,这是demo。
您可以通过在搜索中使用字边界以及匹配的特定限制来查看改进here
\ba(\w)\1{1}\b
如您所希望的 1且只有1 匹配\w
的其他实例,使用{1}
实现,只允许1
匹配,即\1
这是一个额外的\w
。