Найти - Пользователи
Полная версия: поиск без учета регистра
Начало » Python для новичков » поиск без учета регистра
1
gdr
re.search(r'транспорт', 'Транспорт', re.I)
Подскажите почему не ищет?
Андрей Светлов
на re.I не влияет current locale — то есть только ascii получаются case insensitive.
Приведите строки в unicode и используйте re.I | re.U — так будет лучше всего.
Андрей Светлов
>>> import re
>>> re.search(ur'транспорт', u'Транспорт', re.I | re.U)
<_sre.SRE_Match object at 0x19a3440>
>>>
gdr
Странно. Если в ipython запускаю этот код, то не ищет.
спасибо за объяснение.
gdr
Все-таки не понимаю почему этот код не работает в винде
>>> root = 'Транспорт'
>>> re.search(ur'Транспорт', root)
<_sre.SRE_Match object at 0x00A6A7C8>
>>> re.search(ur'транспорт', unicode(root, 'cp1251'), re.I | re.U)
>>>
>>>
Андрей Светлов
Потому что кодировка sys.stdin.encoding == ‘cp866’, как я предполагаю.
gdr
Нет, запускаю в Idle.
Может дело в этом:
>>> sys.stdin.encoding
'cp1251'
>>> unicode('Транспорт', 'cp1251')
u'\u0422\u0440\u0430\u043d\u0441\u043f\u043e\u0440\u0442'
>>> u'Транспорт'
u'\xd2\xf0\xe0\xed\xf1\xef\xee\xf0\xf2'
>>>
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