Как найти слово после совпадения, содержащее шведские символы в Python 2.7

В течение нескольких дней я изо всех сил пытался заставить функцию работать. Я хочу найти слово "Ort: " ( ort = city по-английски) и получить слово после этого. Прекрасно работает со словами без шведского языка. Не имеет значения, читаю ли я строку из файла, написанного на машине с Windows, или создаю файл с помощью vim. Если в "Орте" есть текст, поиск возвращается пустым. Я пробовал много типов кодирования, и иногда я получаю ошибку, но не результаты, которые я хочу. Текст может выглядеть следующим образом: "Бренд и бытие, Орт: Örebro alla ute", и эта функция выглядит следующим образом.

#!/usr/bin/env python
# -*- coding: utf-8 -*-
__author__ = 'stefan'
import re
import codecs
import findloc
from findloc import findloc
# tried different ways open file
#testfil = open('extra.flt.test', 'r')
#testfil =  codecs.open('/medianas/html/extra.flt.hist', 'r', '1250')
testfil =  codecs.open('extra.flt.klar', 'r', 'latin1')
#testfil =  codecs.open('/medianas/html/pocsaglog.flt', 'r', '1250')
keyword = 'Ort :'
for line in testfil:
    line = line.decode('utf8')
# Find word after Ort :
    ort = re.search(r'\Ort : (\w+)', line)
# Find word after Adr :
    adr = re.search(r'\Adr : (\w+)', line)
    if adr:
        print adr.group(1)
        adress = adr.group(1)
        cord = findloc(adress)
        lat = (cord[0])
        lng = (cord[1])
    if ort:
        print ort.group(1)
        stad = ort.group(1)
        cord = findloc(stad)
        lat = (cord[0])
        lng = (cord[1])
testfil.close()

Я надеюсь, что кто-то может помочь мне или указать мне правильное направление.

2 ответа

Решение

Я позволил себе урезать ваш пример согласно https://stackru.com/help/mcve

Для вашей проблемы попробуйте это:

#!/usr/bin/env python
# -*- coding: utf-8 -*-

import re

line="Brand i byggnad Ort : Örebro alla ute"

# Find word after Ort :
ort = re.search('Ort : (.*)', line)
print ort.groups()[0].split(' ')[0]

Этот ответ от работал очень хорошо

#!/usr/bin/env python
# -*- coding: utf-8 -*-

import re

line="Brand i byggnad Ort : Örebro alla ute"

# Find word after Ort :
ort = re.search('Ort : (.*)', line)
print ort.groups()[0].split(' ')[0]

Мой день сохранен! С наилучшими пожеланиями Стефан

Другие вопросы по тегам