2012-05-24 7 views
-1

Используя следующие из Python - Check If Word Is In A StringПроверка Если слово находится в ошибке Струнные

>>> def findWholeWord(w): 
...  return re.compile(r'\b({0})\b'.format(w), flags=re.IGNORECASE).search 
... 
>>> findWholeWord('seek')('those who seek shall find') 
<_sre.SRE_Match object at 0x22c1828> 
>>> findWholeWord('seek') 
<built-in method search of _sre.SRE_Pattern object at 0x22b8190> 
>>> findWholeWord('seek')('those who seek shall find') 
<_sre.SRE_Match object at 0x22c1828> 
>>> findWholeWord('seek')('those who shall find') 

Является ли это ошибка или это должно быть результатом?

<_sre.SRE_Match object at 0x22c1828> 

ответ

2

Этот объект матча результат, и от этого у вас есть доступ к еще несколько функций, как

['__class__', '__copy__', '__deepcopy__', '__delattr__', '__doc__', '__format__' 
, '__getattribute__', '__hash__', '__init__', '__new__', '__reduce__', '__reduce_ex__' 
, '__repr__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__','end', 'endpos' 
, 'expand', 'group', 'groupdict', 'groups', 'lastgroup', 'lastindex', 'pos', 're' 
, 'regs', 'span', 'start', 'string'] 

так на возвращенном объекте можно, например, сделать .span(), чтобы получить индекс начала и конца слова, которое вы ищете.

+1

Чтобы получить строку, которая удовлетворяет полный регулярное выражение, '.group (0) '. И получить только слово в вашем случае:. .group (1) '. Это вернет строку, удовлетворяющую first(). – stalk

+0

Я мог бы использовать это и в дальнейшей разработке приложения. tnx – badc0re

3

Это забавный кусок кода, но в python найти слово в строке на самом деле намного проще. Вам даже не нужна функция для этого:

if some_word in some_str.split(): 
     .... 

Чтобы найти только подстроки, а не целые слова, опустить split часть:

print 'word' in 'funny swordfish'.split() # False 
print 'word' in 'funny swordfish'   # True 
+0

что, если слово «работа» и у меня есть в тексте «работает»? – badc0re

+1

@ badc0re: он возвращает false. – georg

+0

ну, вот что мне не нужно их находить, поэтому я использовал regexp для полного совпадения. я помню это для второго решения tnx – badc0re

Смежные вопросы