Форум сайта python.su
							
  0  
								
								Связался я с Python два дня назад. У меня задача: 1) Есть список французских слов и есть текст на французском. Мне необходимо выбрать для каждого из слов по одному предложению (предложение должно содержать это слово).
 
import codecs
listOfWords = codecs.open(“words.txt”, “r”, “utf-8”).readlines()
mytext = codecs.open(“text.txt”, “r”, “utf-8”).read()
mytext = mytext.replace(“\r\n”,“ ”)
mytext = re.sub(“\s+”,“ ”, mytext) #Удаляю мусор
sentences=
for word in listOfWords:
    word=word
    regex = u"\.[\s\w\'\"\]*?\s+“+word+”\s+[\s\w\'\"\]*?\.“
    reg = re.compile(regex)
    if reg.search(mytext,re.U):
        res = reg.search(mytext, re.U)
        sentences.append(res.group())
    else: 
        sentences.append(”Not Found")
        print word
Регулярка может и неверная, но как я понял проблема в том, что \w не включает в себя буквы: ç, é, ê и т.д.
Подскажите как быть. Спасибо.
Офлайн
							
  1  
								
								Какие значения принимает \w зависит от флага locale. Выставь французскую локаль, и должно работать.
Офлайн