2015-08-12 5 views
1

У меня есть несколько строк текста, содержащих микс символов: бирманский алфавит, латинские буквы, цифры. Мне нужно разбить текст на отдельные категории. Вот пример:Python parse text для латинского алфавита

အေရာင္ဆန္းဆန္းေလး ေတြ ပါတဲ့ Enhancing Eyes shawdow palette ေလးပါ ။ 
Price - 17000 ks. Call 625555555 

я могу определить номера с регулярным выражением

re.findall("\d+", data) 

Но я не могу понять, как разделить эти два алфавиты. Результирующий раскол не обязательно должен быть когерентным - мне просто нужны две отдельные свалки, строка бирманцев и строка английского языка. Есть ли у кого-нибудь какие-либо предложения по определению этого?

+0

Что наш ожидаемый результат? –

+0

Три списка разных строк. Регулярное выражение, указанное выше, даст мне список всех чисел в строке (в этом случае 2). Мне нужна отдельная строка только для английских символов и отдельная строка для только бурманских символов. – user2989731

+1

'[A-Za-z] +', похоже, работает на меня, но я использую локаль США. Какой язык вы используете? Это не работает для вас? –

ответ

0

Как о чем-то вроде:

import re 
teststring = """အေရာင္ဆန္းဆန္းေလး ေတြ ပါတဲ့ Enhancing Eyes shawdow palette ေလးပါ ။ 
Price - 17000 ks. Call 625555555""" 

Numbers = re.findall("\d+", teststring) 
Latin = re.findall("[A-Za-z]+", teststring) 
Burmese = re.findall("[^A-Za-z0-9 ]+", teststring) 
print Numbers, Latin, 
print Burmese 
1

Кажется, что вы хотите, как показано ниже.

>>> import re 
>>> s = '''အေရာင္ဆန္းဆန္းေလး ေတြ ပါတဲ့ Enhancing Eyes shawdow palette ေလးပါ ။ 
Price - 17000 ks. Call 625555555''' 
>>> re.findall(r'\d+|[^A-Za-z]+|[A-Za-z\s]+', s) 
['အေရာင္ဆန္းဆန္းေလး ေတြ ပါတဲ့ ', 'Enhancing Eyes shawdow palette ', 'ေလးပါ ။ \n', 'Price ', '- 17000 ', 'ks', '. ', 'Call ', '625555555'] 
Смежные вопросы