2013-06-11 149 views
2

我用下面的代碼讀取一個文件,然後我想使用re庫在文件中找到單詞。該文件包含土耳其文字符。所以我用utf-8解碼文件。 re圖書館不知道土耳其字符。下面的代碼不起作用。python unicode正則表達式

text= unicodedata.normalize("NFKD",codecs.open(os.path.abspath("texts/kopru1.txt"),"rb").read().decode("utf-8")) 
    text=text.replace("\r\n"," ").lower() 
    aa= re.findall(ur"[a-zçşıöü]+", text,re.UNICODE) 

雖然 「艾謝費裏德阿卡爾」 是一個詞,這個詞似乎爲 「AYS」 和 「Ë」 的。

+1

你能舉一些例子數據並告訴我們你想做什麼嗎? – kqr

+1

示例字符串是「ayşekulinköprü」。我想找到這個字符串中的單詞。 – hinzir

+0

如果你想按字分割爲什麼不使用'text.split(「」)'? – PurityLake

回答

5

使用轉義序列\w這意味着「任何類型的字母」。剛剛從維基百科獲得一個例句:

>>> text = u'Türkî-i çin (güzel güneş) terkiplerinde de gördüğümüz' 
>>> re.findall(r'\w+', text, re.UNICODE) 
['Türkî', 'i', 'çin', 'güzel', 'güneş', 'terkiplerinde', 'de', 'gördüğümüz'] 
+0

我以前做過。我又一次。但代碼還沒有工作。 – hinzir

+0

@hinzir在你嘗試匹配它之前,你的'text'變量是什麼樣的? – kqr

+0

http://imageshack.us/a/img819/3765/turkishcharachterpython.png – hinzir