Как найти слово после совпадения, содержащее шведские символы в 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]
Мой день сохранен! С наилучшими пожеланиями Стефан