2011-12-10 20 views
1

文字列内の単語を検索しようとしています。文字列内の単語を検索するには

match = 'File' 
s2 = 'name of File: is .jpg' 
if match not in s2: 
    print 'ok' 

そしてそれは働きました。 listでこれを行うことはできますか?

match = ['File','Category'] 
+0

を検索焦点を当てましたか? I. e。もしあなたの検索語が 'foo'なら' foobar'内の 'foo'にマッチさせますか? –

+0

@Tim Pietzckerは正確な単語ではありません。 – Kulbir

答えて

4

もちろん可能です。だから、matchの各単語がs2にあるかどうか調べます。

for word in match: 
    if word not in s2: 
     print 'ok' 

または単純なワンライナー -

[word for word in match if word not in s2] 
0
for entry in match: 
    if entry not in s2: 
    print 'ok' 
0
>>> s2.split() 
['name', 'of', 'File:', 'is', '.jpg'] 
>>> s = s2.split() 
>>> s[2] 
'File:' 
>>> match in s[2] 
True 
1

あなただけの単語の存在を求めている場合:あなたはそのために求めている場合は

>>> 'St' in 'Stack' 
True 

ポジション:

>>> ("stack").find("st") 
0 

注:

構文::

str.find(sub[, start[, end]]) 

は最低を返還しなければならない上記の内容は、あなたの種類の参照のために私のオリジナル作成をテストしている間に、以下の内容がhttp://docs.python.org/library/stdtypes.htmlからフェッチされましたサブストリングが見つかったストリング内のインデックス。サブがスライスに含まれるようにする[開始:終了]。オプションの引数startとendはスライス表記法のように解釈されます。 subが見つからない場合は-1を返します。

参考:

http://docs.python.org/library/stdtypes.html < - もっと読むための方法のより多くの多様性を知るためには、あなたが正確な言葉を検索しますか

関連する問題