-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 に答える