| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Python: Общие вопросы > модуль re не дружит с буквой ч? |
| Автор: kulibinka 20.11.2006, 15:12 | ||
| Цель - получить все английские и русские слова из текста (т.е. как минимум убрать разные знаки препинания). Есть ф-я:
Причем она почти идеально работает, вот только проблеммы с буквой "ч" у нее - эта буква банально не считается за букву (видно по результатам работы скрипта). text = "чукча чукчу. Чичибечит? - давай-давай one two 12" Результат работы only_words (text) следующий: ук а ук у и ибе ит давай давай one two 12 В чем может быть проблема с этой буквой? |
| Автор: J2A 20.11.2006, 17:17 | ||
А так?
|
| Автор: kulibinka 20.11.2006, 17:46 | ||||||
| О, уже близко. Так получаю ошибку
Когда делаю так:
То уже буква Ч появляется, но потом вся работа скрипта рушится (эта ф-я возвращает результат не в той кодировке, на которую расчитана остальная часть) Подскажите пожалуйста что нужно сделать, чтобы вернуть изменить кодировку в найденых словах на ту что была изначально? Добавлено @ 17:55 сделал так:
Заработало как надо Огромное спасибо J2A за помощь. |
| Автор: J2A 20.11.2006, 19:20 | ||
Угу, в верном направлении. Просто re.UNICODE означает, что обрабатываемый текст должен быть в уникоде. Если во всей остальной программе текст 8-битный, то нужно перекодировать. Однако все же лучше внутри программы использовать уникод, а перекодировки делать только на входе/выходе. Ну и маленький tip:
и выглядит более компактно, и работает быстрей. |
| Автор: albertn 21.11.2006, 09:58 |
| А еще лучше, если перекодить при вводе/выводе, а всю программу строить на юникоде. Во первых идеологически правильно, во вторых никаких проблем с различными функциями. |
| Автор: J2A 21.11.2006, 13:34 |
| То же самое сказал. |
| Автор: kulibinka 21.11.2006, 15:59 |
| Еще раз спасибо всем за полезные советы - глядишь, так я и научу свой питон с кирилицей дружить |
| Автор: albertn 22.11.2006, 09:37 |
| А вот и не тоже. Ты предложил на входе/выходе из подпрограммы, а я предложил при считывании/записи и во всей программе использовать юникод. |
| Автор: J2A 22.11.2006, 11:50 |
| Вот упертый. Читай внимательней. Покажи слово "подпрограмма" и поясни не являются ли "вход/выход" и "ввода/вывод" синонимами? |
| Автор: J2A 22.11.2006, 16:17 |
| Пусть так. Хорошь толочь воду в ступе. |
| Автор: albertn 23.11.2006, 09:22 |
| Да ичего личного, просто я и с этим уже ничего не поделаешь |