Python找到双字母

时间:2015-10-28 21:06:59

标签: python regex

我试图获得所有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