1

私はPythonの初心者で、正規表現を学び始めました。文字列内のテキストの一致を取得しようとしていて、理解できないものにぶつかりました。これが私のコードです:

import re

pattern1 = r'\b\w+\b,\s\b\w+\b'
pattern2 = r'\b\w+\b,\s\b\w+\b,'

# pattern1 produces expected result
with open('test_sentence.txt', 'r') as input_f:
    for line in input_f:
        word = re.search(pattern1, line)
        print word.group()

# pattern 2, same as pattern1 but with additional ',' at the end
# does not work.
with open('test_sentence.txt', 'r') as input_f:
    for line in input_f:
        word = re.search(pattern2, line)
        print word.group()

test_sentence.txt の内容は次のとおりです。

I need to buy are bacon, cheese and eggs. 
I also need to buy milk, cheese, and bacon.
What's your favorite: milk, cheese or eggs.
What's my favorite: milk, bacon, or eggs.

なぜうまくいかないのか理解できませんを参照してエラーをpattern2スローします。これは、「pattern2」の正規表現コードに一致するものが見つからなかったことを意味すると思います。末尾の余分な部分がこの問題を引き起こしているのはなぜですか? 牛乳やベーコンと単純に合わないのはなぜですか?none-type object has no attribute groupprint word.group(),milk, cheese,' and

4

1 に答える 1