-2

こんにちは、Pythonに少し問題があります。とにかく、特定の文字セットが1行に表示される回数を数えようとしていますが、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 - ')

文中にrrが何回あるかをカウントしようとしていますが、ダブルが表示される場合にのみ、必要な入力1.yarrrr harrr me hearties とrrrrumのボトルを使用して完全なコードを起動すると、 カウントされます。ダブルrsの量私はちょうどダブルrを含む文がいくつあるか知りたいです

4

1 に答える 1

1

行ごとに 1 つの rr を見つけたい場合は、次のようにします。

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

説明:

正規表現の詳細については、help(re) と入力してください。

この特定の正規表現は次のように述べています: 2 つ以上の 'r' を含む、行内のすべてのグループを検索します

rrs ではなく rr-s を検索する場合は、次を使用します。

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

これは少し難しいです (r ではない文字が先行するか、行がそこから始まり、r ではない文字が続くか、行がそこで終わるすべての 'rr' を検索します。これらの前後の文字は気にしないでください)

一般に、次の方法で「制御フロー」を改善できます。

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 に答える