在字符串中查找特定单词,Python

时间:2014-08-11 02:42:57

标签: python regex

创建一个函数,给定两个参数:文本作为字符串,单词作为一组字符串,返回字符串中包含的字数。

EG。 count_words(“How aresjfhdskfhskd you?”,{“how”,“are”,“you”,“hello”})== 3

我的尝试:

import re
def count_words(text, words):
count = 0
for i in words:
    x = re.compile('.*'+i+'.*')
    if x.search(text):
        count +=1
return count

我认为之前已经多次回答,但我找不到相关的答案,所以我道歉。 任何帮助将不胜感激,谢谢

1 个答案:

答案 0 :(得分:8)

def count_words(text, words):
    answer = 0
    for i in range(len(text)):
        if any(text[i:].startswith(word) for word in words):
            answer += 1
    return answer

如果您希望它对文本中的字母大小写不敏感:

def count_words(text, words):
    text = text.lower()
    answer = 0
    for i in range(len(text)):
        if any(text[i:].startswith(word) for word in words):
            answer += 1
    return answer

当然,这可以通过单行完成:

sum(text.count(word) for word in words)