Я очистил несколько статей с веб-сайтов. Теперь я пытаюсь извлечь местонахождение новостей. Месторасположение написано либо капитализировано только столицей страны (например, «BRUSSELS-»), либо в некоторых случаях вместе со страной (например, «BRUSELLS, Belgium-»)Соответствие место с регулярными выражениями | Python
Это образец статей:
|[<p>Advertisement , By MILAN SCHREUER and ALISSA J. RUBIN OCT. 5, 2016
, BRUSSELS — A man wounded two police officers with a knife in Brussels around...]
[<p>Advertisement , By DAVID JOLLY FEB. 8, 2016
, KABUL, Afghanistan — A Taliban suicide bomber killed at least three people on Monday and wounded]
регулярное выражение, которое я использовал это один:
text_open = open("Training_News_6.csv")
text_read = text_open.read()
pattern = ("[A-Z]{1,}\w+\s\—")
result = re.findall(pattern,text_read)
print(result)
причина, почему я использовал оценка знак (-), потому что это повторяющийся паттерн, который содержит ссылки на место.
Однако этому регулярному выражению удается извлечь «БРЮССЕЛЬ», но когда дело доходит до «КАБУЛА, Афганистан», он извлекает только последнюю часть, а именно «Афганистан». Во втором случае я хотел бы выделить все место: столицу и страну. Есть идеи?
Попробуйте 'r '([A-Z] +) (?: \ W + \ w +)? \ S * -''. См. Https://regex101.com/r/ATgIeZ/1 –
Когда я его запускаю, он соответствует только словам, заглавными, и когда за Столиками следует запятая и страна, я хотел бы также их выдать –
Просто переместите ') 'немного дальше: https://regex101.com/r/ATgIeZ/2 –