Python - 正则表达式 - 如何只找到四个字母的单词?

net*_*ate -1 python regex

我正在处理一系列我想搜索的文本,只找到4个字母的单词.它有效,除了它还可以找到4个以上的字母单词.

import re
test ="hello, how are you doing tonight?"
total = len(re.findall(r'[a-zA-Z]{3}', text))
print (total)
Run Code Online (Sandbox Code Playgroud)

它找到15,虽然我不确定它是如何发现的那么多.我以为我可能不得不使用\ b来选择单词的开头和结尾,但这似乎对我没用.

小智 8

试试这个

re.findall(r'\b\w{4}\b',text)

正则表达式匹配:

\b,这是一个单词边界.它匹配单词的开头或结尾.

\w{4} 匹配四个字符(az,AZ,0-9或_).

\b 是另一个词边界.

**作为附注,您的代码包含拼写错误,re.findall的第二个参数应该是您的字符串变量的名称,即test.此外,您的字符串不包含任何4个字母的单词,因此建议的代码将输出为0.