-2

嗨,伙计们,python 有点麻烦,对它很陌生,我试图计算某组字符在一行中出现的次数,无论如何我可以让它计数,但它计数为 4,即。

a = raw_input('insert pirate bob speak line line 1 - ')
b = raw_input('insert pirate bob speak line line 2 - ')
c = raw_input('insert pirate bob speak line line 3 - ')

我试图让 t 计算一个句子中有多少次 rr 但只有当我使用1.yarrrr harrr me hearties和一瓶 rrrrum 的必要输入启动完整代码时才会出现双重问题amout of double rs 我只想知道有多少句子包含 double r

4

1 回答 1

1

如果您希望每行找到一个 rr:

import re
myline = 'harrrr!'
matches = re.findall('(rr+)',myline)
if matches: 
    print "exactly",len(matches)," rr was found"

解释:

要了解有关正则表达式的更多信息,请键入 help(re)

这个特殊的正则表达式表示:搜索一行中的所有组,包含两个或多个 'r's

如果要搜索 rr-s 而不是 rrrs,请使用:

re.findall('(?:[^|[^r])(rr)(?:[^r]|$)', 'harrrarrr')

哪个稍微困难一些(搜索所有那些'rr',它们前面有一个不是r的字符或行从那里开始,然后是一个不是r的字符,或者行在那里结束,虽然不关心这些后面和前面的字符)

一般来说,您可以通过以下方式改进“控制流”:

import re
while True: #forever or at least until break-[up], you know, love-style forever;)
    line = raw_input("Howdy? ")
    if line: # if the user actually typed in something
        matches = re.findall('(rr+)',line)
        if matches: 
            print "exactly",len(matches)," rr was found"
        else:
            print "you'rrre NOT a pirrate!"
    else:
        break #quit
于 2012-07-29T02:16:16.213 回答