使用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>
答案 0 :(得分:3)
这是一段有趣的代码,但在python中查找字符串中的单词实际上要简单得多。你甚至不需要这个功能:
if some_word in some_str.split():
....
要查找子字符串而不是整个单词,请省略split
部分:
print 'word' in 'funny swordfish'.split() # False
print 'word' in 'funny swordfish' # True
答案 1 :(得分: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()
来获取您要查找的单词的开始和结束索引。