与findall()一起使用的正则表达式模式,可查找3个字母词

时间:2019-03-31 00:11:34

标签: python regex

所以我有一些代码可以产生正确的结果,但是代码太具体了。我希望它更通用,以便可以使用re.findall()从“ s2”(例如,DOG)中提取所有3个字母的单词。

在下面的代码中,问题是当我打印m [0:3]时,我正在挑选三个单词组成的三个单词。换句话说,我所寻找的代码要查找3个以上字母的单词,而我不得不选择,而我只想要3个字母的单词-一开始就不多了。

list2 = 'A, k: it; hi! map@ LAP# rAp, home: LIFE; party! animals@'
m = re.findall(r'(\w{3,})', list2) 
m[0:3]

我想获取['map','lap','rAP']。而且我希望该代码在将来能够保留其他3个字母单词。

1 个答案:

答案 0 :(得分:1)

您可以查找三个完全由单词边界包围的单词字符:

import re

s2 = 'I, a: be; go! cat@ DOG# aRe, home: WORK; ninja! rules@'
m = re.findall(r'\b\w{3}\b', s2) 
print(m)
# ['cat', 'DOG', 'aRe']