私は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 group
print word.group()
,
milk, cheese,' and