2 回答
TA贡献1810条经验 获得超4个赞
您可以使用split根据分隔符进行拆分(在您的情况下,空格字符的默认分隔符就足够了),然后计算列表的长度:
In [49]: my_str = 'A very valid, and nice example.'
In [50]: len(my_str.split())
Out[50]: 6
编辑:由于您的示例中有标点符号,您可以先删除它们:
In [59]: my_str
Out[59]: 'A very valid, and nice example.'
In [60]: len(re.sub('[^\w\s]', '', my_str).split())
Out[60]: 6
In [61]: len(re.sub('[^\w\s]', '', '...').split())
Out[61]: 0
因此,这将删除不是字母数字和空格的每个字符。
TA贡献1818条经验 获得超3个赞
下面匹配字母字符组。我之前尝试过使用几种不同的表达方式,但是诸如“--”之类的符号组合会被计为单词。仅使用 \w 量词,这会计算所有单词组并将它们添加到列表中。如果您希望看到这些词,请删除 len 量词。我用我能想到的尽可能多的例子尝试了这个,它对所有的例子都有效!
import re
def getWordCount(value):
list = re.findall('([\w]+)',value)
return len(list)
value = 'A very nice, and simple, example.'
print(getWordCount(value))
添加回答
举报