Найти - Пользователи
Полная версия: Регулярное выражение - Unicode
Начало » Python для новичков » Регулярное выражение - Unicode
1
myarik
Добрый вечер.

Помогите решить проблему с Unicode в регулярном выражении.

Задача такая, найти вхождение в строке и удалить его, регистр не должен учитываться.

Что я делаю не так ?

ipdb> regexp = re.compile(ur"Хслово", re.IGNORECASE | re.UNICODE)
ipdb> str1 = "Хслово тут есть"
ipdb> str2 = "хслОво 2"
ipdb> regexp.findall(str1)
['\xd0\xa5\xd1\x81\xd0\xbb\xd0\xbe\xd0\xb2\xd0\xbe']
ipdb> regexp.findall(str2)
[]
ipdb> 
py.user.next
>>> import re
>>> 
>>> regexp = re.compile(ur"Хслово", re.IGNORECASE | re.UNICODE)
>>> 
>>> str1 = u"Хслово тут есть"
>>> str2 = u"хслОво 2"
>>> regexp.findall(str1)
[u'\u0425\u0441\u043b\u043e\u0432\u043e']
>>> regexp.findall(str2)
[u'\u0445\u0441\u043b\u041e\u0432\u043e']
>>>
myarik
Спасибо за ответ.

Подскажите из-за чего может возникать такая проблема, если дебажу в коде то регулярка не работает. Если из консоли все работает.

ipdb>  regexp = re.compile(ur"Хслово", re.IGNORECASE | re.UNICODE)
ipdb> str1 = u"Хслово тут есть"
ipdb> str2 = u"хслОво 2"
ipdb> type(str1)
<type 'unicode'>
ipdb> type(str2)
<type 'unicode'>
ipdb> regexp.findall(str2)
[]
ipdb> regexp.findall(str1)
[u'\xd0\xa5\xd1\x81\xd0\xbb\xd0\xbe\xd0\xb2\xd0\xbe']
py.user.next
[guest@localhost py]$ cat repdb.py 
#!/usr/bin/env python
# -*- coding: utf-8

import re

regexp = re.compile(ur"Хслово", re.IGNORECASE | re.UNICODE)

str1 = u"Хслово тут есть"
str2 = u"хслОво 2"

lst1 = regexp.findall(str1)
print lst1

lst2 = regexp.findall(str2)
print lst2

[guest@localhost py]$ ipdb repdb.py
> /home/guest/tmp/tests/py/repdb.py(4)<module>()
3
----> 4 import re
5

ipdb> cont
[u'\u0425\u0441\u043b\u043e\u0432\u043e']
[u'\u0445\u0441\u043b\u041e\u0432\u043e']
The program finished and will be restarted
> /home/guest/tmp/tests/py/repdb.py(4)<module>()
3
----> 4 import re
5

ipdb>
[guest@localhost py]$
myarik
Спасибо, за Ваше время и помощь. Вроде разобрался с проблемой.
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB