Моя строка является расшифровкой, я хочу захватить говорящего, в частности его второе имя (которое должно совпадать только в том случае, если оно полностью написано заглавными буквами). Кроме того, я хочу сопоставить их речь, пока не начнется следующий выступающий, я хочу повторить этот процессв конце концов, из-за огромного текстового файла.
Проблема в том, что сопоставление возвращает только один сопоставляемый объект, даже если есть два разных говорящих.Также я попробовал онлайн тестирование регулярных выражений со вкусом python, однако они возвращают очень разные результаты (не уверены, почему?).
str = 'Senator BACK\n (Western Australia) (21:15): This evening I had the pleasure (...) Senator DAY\n (South Australia) (21:34): Well, what a week it h(...) '
pattern = re.compile("(:?(Senator|Mr|Dr)\s+([A-Z]{2,})\s*(\(.+?\))\s+(\(\d{2}:\d{2}\):)(.*))(?=Senator)")
for match in re.finditer(pattern, str):
print(match)
Я хочу 2 совпадающих объекта, причем оба объекта имеют группу для этой фамилии и ихречь.Важно также отметить, что я использовал отладчики Regex в Интернете, однако разновидность python дает разные результаты для Python на моем терминале.