В python, извлечение неанглийских слов

У меня есть текстовый файл с английскими символами и другими языковыми символами. И используя код ниже, я хочу извлечь несколько слов из этого файла, который не является английским, особенно корейским (Unicode варьируется от AC00 до D7AF в UTF-8)

Есть ли способ сделать это простым в этом коде?

Нужно ли мне что-то делать?

.... text = f.read() words = re.findall(r'\w+', dataString) f.close() .... 

2 Solutions collect form web for “В python, извлечение неанглийских слов”

Использовать капитал \W = Соответствует неальфанумерному символу, исключая _ .

 >>> re.findall('[\W]+', u"# @, --►(Q1)-grijesh--b----►((Qf)), "); [u'# @, --\u25ba(', u')-', u'--', u'----\u25ba((', u')), '] 

От: Unicode HOWTO? Для чтения текстового файла с однодисковым кодированием используйте:

 import codecs f = codecs.open('unicode.rst', encoding='utf-8') for l in f: # regex code here 

У меня есть файл:

 :~$ cat file # @, --►(Q1)-grijesh--b----►((Qf)), 

Чтение его с Python:

 >>> import re >>> import codecs >>> f = codecs.open('file', encoding='utf-8') >>> for l in f: ... print re.findall('[\W]+', l) ... [u'# @, --\u25ba(', u')-', u'--', u'----\u25ba((', u')),\n'] >>> 

Чтобы прочитать алфавитные слова, попробуйте

 >>> f = codecs.open('file', encoding='utf-8') >>> for l in f: ... print re.findall('[^\W]+', l) ... [u'Q1', u'grijesh', u'b', u'Qf'] 

Примечание: small \w Соответствует буквенно-цифровому символу, включая _ .

Чтобы найти все символы в диапазоне от AC00 до D7AF:

 import re L = re.findall(u'[\uac00-\ud7af]+', data.decode('utf-8')) 

Чтобы найти все слова, отличные от ascii:

 import re def isascii(word): return all(ord(c) < 128 for c in word) words = re.findall(u'\w+', data.decode('utf-8')) non_ascii_words = [w for w in words if not isascii(w)] 
Python - лучший язык программирования в мире.