-1

使用Python 中的以下内容 - 检查 Word 是否在字符串中

>>> 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>
4

2 回答 2

3

这是一段有趣的代码,但在 python 中,在字符串中查找单词实际上要简单得多。你甚至不需要一个函数:

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

要仅查找子字符串而不是整个单词,请省略以下split部分:

print 'word' in 'funny swordfish'.split()  # False
print 'word' in 'funny swordfish'          # True
于 2012-05-24T09:32:18.803 回答
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()获取要查找的单词的开始和结束索引。

于 2012-05-24T09:17:12.040 回答