Уведомления

Группа в Telegram: @pythonsu

#1 Ноя. 22, 2013 03:42:17

gelius
Зарегистрирован: 2013-03-18
Сообщения: 125
Репутация: +  0  -
Профиль   Отправить e-mail  

определить есть ли слово в тексте

На пхп делаю так:

$text = 'text';
if(preg_match("/слово/", $text))
{
echo 'есть';
}
else {
echo 'нет';
}
Как лучше написать на питоне?

Офлайн

#2 Ноя. 22, 2013 05:31:52

ilnur
От: Казань
Зарегистрирован: 2009-01-06
Сообщения: 524
Репутация: +  22  -
Профиль   Отправить e-mail  

определить есть ли слово в тексте

по простому

if 'text' in 'some text':
    print 'yes'
else:
    print 'no'

Офлайн

#3 Ноя. 22, 2013 05:37:18

JOHN_16
От: Россия, Петропавловск-Камчатск
Зарегистрирован: 2010-03-22
Сообщения: 3292
Репутация: +  221  -
Профиль   Отправить e-mail  

определить есть ли слово в тексте

ilnur
по простому это

print 'yes' if 'text' in 'some_text' else 'no'



_________________________________________________________________________________
полезный блог о python john16blog.blogspot.com

Офлайн

#4 Ноя. 22, 2013 09:47:43

Budulianin
От:
Зарегистрирован: 2011-10-18
Сообщения: 1218
Репутация: +  33  -
Профиль   Отправить e-mail  

определить есть ли слово в тексте

gelius

Если нужно определить, есть в тексте отдельное слово или нет, то без регулярок не обойтись.

Если нужно выяснить, есть вхождение в строку или нет, то просто используй оператор in



Отредактировано Budulianin (Ноя. 22, 2013 09:51:12)

Офлайн

#5 Ноя. 22, 2013 21:23:56

@cckyi_boxxx
От:
Зарегистрирован: 2012-01-13
Сообщения: 181
Репутация: +  14  -
Профиль   Отправить e-mail  

определить есть ли слово в тексте

import re
list_of_finded_text = re.findall( r'.*?(слово).*?' , source_text )

финт с оператором in заюзанный например с текстом прочитанным из файла или дернутым с html из инета не сработает из за кодировок , в остальных случаях целесообразнее юзать его



рекомендую юзать aptana studio , на мой взгляд самая няшнпя ИДЕ под питон , она к почти всей стандартной либе дает описалово что делает та или иная функция или класс заюзанной либы , это облегчает работу так как не приходиться держать в голове абсолютно все что натыкали в либу но постепенно это отложиться в голове



Отредактировано @cckyi_boxxx (Ноя. 22, 2013 21:30:06)

Офлайн

#6 Ноя. 22, 2013 21:48:59

Budulianin
От:
Зарегистрирован: 2011-10-18
Сообщения: 1218
Репутация: +  33  -
Профиль   Отправить e-mail  

определить есть ли слово в тексте

@cckyi_boxxx
не сработает из за кодировок , в остальных случаях целесообразнее юзать его

как бы Unicode спасает

Да и для регвыров, тебе тоже нужно будет в Unicode переводить строку, если она не ascii



Офлайн

#7 Ноя. 22, 2013 22:09:16

smoke853
Зарегистрирован: 2012-10-02
Сообщения: 123
Репутация: +  15  -
Профиль   Отправить e-mail  

определить есть ли слово в тексте

@cckyi_boxxx
r'.*?(слово).*?'
Эта регулярка будет находить все слова в которых есть подстрока ‘слово’.
Я думаю тут лучше использовать якорный метасимвол \b - он соответствует границе слова.
Пример:
import re
text = 'underworld world worldly'
list_of_finded_text = re.findall(r'.*?(world).*?', text)
print(list_of_finded_text)  # Ответ: ['world', 'world', 'world']
res = re.findall(r'\bworld\b', text)
print(res)  # Ответ: ['world']

Офлайн

#8 Ноя. 23, 2013 19:56:39

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

определить есть ли слово в тексте

gelius
Как лучше написать на питоне?
res = re.search(r'\bслово\b', text) is not None



Отредактировано py.user.next (Ноя. 23, 2013 19:57:53)

Офлайн

Board footer

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

Powered by DjangoBB

Lo-Fi Version