Уведомления

Группа в Telegram: @pythonsu

#1 Фев. 2, 2015 00:29:00

PyNovice
Зарегистрирован: 2014-09-18
Сообщения: 17
Репутация: +  2  -
Профиль   Отправить e-mail  

Сравнение строк.

Пример. Есть строка

a = 'мама мыла раму'
и есть строка
b = 'Мама, мыла Раму™'
Как их можно привести к одному виду, выкинув все знаки и пр., как например ‘мамамылараму’ для корректного сравнения друг с другом. Может есть какой-то модуль или может как-то по-другому их можно сравнивать? Или все же придется свой огород городить?

Офлайн

#2 Фев. 2, 2015 01:20:05

terabayt
От: Киев
Зарегистрирован: 2011-11-26
Сообщения: 1099
Репутация: +  103  -
Профиль   Отправить e-mail  

Сравнение строк.

>>> import re
>>> s1 = "Hello world! :)"
>>> s2 = "helloworld"
>>> re.sub("[^\w]","",s1.lower()) == re.sub("[^\w]","",s2.lower())
True
но знак нижнего подчеркивания будет учитыватся, если нужно и без него, то так:
re.sub("[^a-z0-9]","",s1.lower()) == re.sub("[^a-z0-9]","",s2.lower())



————————————————
-*- Simple is better than complex -*-

Отредактировано terabayt (Фев. 2, 2015 01:31:47)

Офлайн

#3 Фев. 2, 2015 05:54:09

PooH
От:
Зарегистрирован: 2006-12-05
Сообщения: 1948
Репутация: +  72  -
Профиль   Отправить e-mail  

Сравнение строк.

Начните отсюда .

PS: Готовые модули есть



Вот здесь один из первых отарков съел лаборанта. Это был такой умный отарк, что понимал даже теорию относительности. Он разговаривал с лаборантом, а потом бросился на него и загрыз…

Отредактировано PooH (Фев. 2, 2015 05:54:54)

Офлайн

#4 Фев. 2, 2015 06:27:42

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 9727
Репутация: +  843  -
Профиль   Отправить e-mail  

Сравнение строк.

>>> def f(s):
...     return tuple(i.lower() for i in s if i.isalpha())
... 
>>> a = 'мама мыла раму'
>>> b = 'Мама, мыла Раму™'
>>> f(a) == f(b)
True
>>> f('мама') == f('мыла')
False
>>>



Офлайн

#5 Фев. 2, 2015 18:07:41

PyNovice
Зарегистрирован: 2014-09-18
Сообщения: 17
Репутация: +  2  -
Профиль   Отправить e-mail  

Сравнение строк.

О сколько всего. Спасибо, буду изучать.

Офлайн

Board footer

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

Powered by DjangoBB

Lo-Fi Version