好的家伙我得到了4个例子: 我爱#hacker, 我在#Hacker的挑选卡挑战赛中得到27分, 我刚刚报名参加夏季杯@hacker, 黑客联合创始人哈里的有趣谈话,
我需要找到" hacker"这个词多少次?重复。
import re
count = 0
res = re.match("hacker")
for res in example:
count += 1
return count
这是我的代码"到目前为止"因为我不知道如何找出这个练习的解决方案
答案 0 :(得分:1)
string1="hello Hacker what are you doing hacker"
a=re.findall("hacker",string1.lower())
print (len(a))
输出:
>>>
2
>>>
re.findall 将找到您编写的所有字符串。 编辑:我也添加了 string1.lower(),如Rawing所述。
您的代码无效,因为 match()找到第一个匹配项 只要。不是全部。
答案 1 :(得分:1)
这样:
the_string = """I love #hacker, I just scored 27 points in the Picking Cards challenge on #Hacker, I just signed up for summer cup @hacker, interesting talk by hari, co-founder of hacker,"""
num = the_string.lower().count("hacker")
答案 2 :(得分:1)
您可以使用re.findall
:
my_string = """I love #hacker, I just scored 27 points in the Picking Cards challenge on #Hacker, I just signed up for summer cup @hacker, interesting talk by hari, co-founder of hacker,"""
>>> import re
>>> len(re.findall("hacker",my_string.lower()))
4
re.findall
为你提供字符串中所有匹配的子字符串,然后len会告诉你它们中有多少个。
str.lower()
用于将字符串转换为小写
而不是str.lower你也可以使用re.IGNORECASE
FLAG:
>>> len(re.findall("hacker",my_string,re.IGNORECASE))
4
答案 3 :(得分:0)
你可以使用count()
函数,在拆分字符串后不需要正则表达式,如果你想匹配大写字母,你需要使用lower
函数:
>>> l='this is a test and not a Test'
>>> map(lambda x: x.lower() ,l.split()).count('test')
2
>>> l='this is a test and not a rtest'
>>> map(lambda x: x.lower() ,l.split()).count('test')
1