Уведомления

Группа в Telegram: @pythonsu

#1 Март 3, 2011 13:30:54

Cover Story
От:
Зарегистрирован: 2008-08-26
Сообщения: 192
Репутация: +  0  -
Профиль   Отправить e-mail  

Замена кода символа на сам символ

Всем доброго!
Имею строку: ‘фраза - җөмлә, гыйбарә’ Нужно поменять коды на сами символы, естественно таких строк очень много и коды символов постоянно меняются.

Что удалось понять:

print unichr(1175)
Выводит сам символ
a = 'фраза - җөмлә, гыйбарә'
pattern = "&#[0-9]+;"
number_re = re.compile(pattern)
print number_re.findall(a)
for x in number_re.findall(a):
print unichr(int(x[2:6]))
Так я могу произвести поиск символов и их вывод, а дальше блин ступор.
Знаю что для замены используется метод sub, но как им пользоваться что-то не допру.



Python 2.7.3
Pyside 1.1.2

Офлайн

#2 Март 4, 2011 07:53:40

Cover Story
От:
Зарегистрирован: 2008-08-26
Сообщения: 192
Репутация: +  0  -
Профиль   Отправить e-mail  

Замена кода символа на сам символ

В принципе вот что получилось:

# coding: utf-8
import re
a = u'фраза - җөмлә, гыйбарә'
s = []
pattern = "(&#[0-9]+;)"
number_re = re.compile(pattern)
for x in number_re.split(a):
if x[0:2] <> '&#':
s.append(x)
else:
s.append(unichr(int(x[2:6])))
print "".join(s)
В связи с этим два вопроса
На сколько это правильно?
Можно сделать проще?



Python 2.7.3
Pyside 1.1.2

Офлайн

#3 Март 6, 2011 12:37:04

bw
От:
Зарегистрирован: 2007-09-26
Сообщения: 938
Репутация: +  20  -
Профиль   Адрес электронной почты  

Замена кода символа на сам символ

Opera 11.01 (1190):

Работать не будет!

p.s. Никогда split не пользовался, лень сейчас читать api, работал с sub (мне кажется он и тут уместнее). Компилирование выражения в данном случае неудачная идея.

..bw



Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version