63

いくつかの例を見つけようとしていますが、運がありません。誰かがネット上のいくつかの例を知っていますか? 見つからないときに何を返すか、最初から最後まで指定する方法を知りたいのですが、これは0、-1になると思います。

4

9 に答える 9

112

何を探しているのかわからない、ということfind()ですか?

>>> x = "Hello World"
>>> x.find('World')
6
>>> x.find('Aloha');
-1
于 2009-03-23T19:00:13.940 に答える
44

あなたも使うことができますstr.index

>>> 'sdfasdf'.index('cc')
Traceback (most recent call last):
  File "<pyshell#144>", line 1, in <module>
    'sdfasdf'.index('cc')
ValueError: substring not found
>>> 'sdfasdf'.index('df')
1
于 2009-03-23T19:00:24.843 に答える
30

ドキュメントから:

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

スライス内で部分文字列subs[start:end]が見つかった文字列の最小インデックスを返します。オプションの引数startendは、スライス表記のように解釈されます。サブが見つからない-1場合に戻ります。

したがって、いくつかの例:

>>> my_str = 'abcdefioshgoihgs sijsiojs '
>>> my_str.find('a')
0
>>> my_str.find('g')
10
>>> my_str.find('s', 11)
15
>>> my_str.find('s', 15)
15
>>> my_str.find('s', 16)
17
>>> my_str.find('s', 11, 14)
-1
于 2009-03-23T19:03:50.170 に答える
17

正直なところ、これは、コマンド ラインで Python を開いて、いじり始めるような状況です。

 >>> x = "Dana Larose is playing with find()"
 >>> x.find("Dana")
 0
 >>> x.find("ana")
 1
 >>> x.find("La")
 5
 >>> x.find("La", 6)
 -1

Python のインタープリターは、この種の実験を容易にします。(同様のインタプリタを持つ他の言語にも同じことが言えます)

于 2009-03-23T19:02:04.357 に答える
6

テキスト内の文字列の最後のインスタンスを検索する場合は、rfind を実行できます。

例:

   s="Hello"
   print s.rfind('l')

出力: 3

*インポートは必要ありません

完全な構文:

stringEx.rfind(substr, beg=0, end=len(stringEx))
于 2012-09-04T06:44:36.190 に答える
2

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

sub が [start, end] の範囲に含まれるように、部分文字列 sub が見つかった文字列内の最小のインデックスを返します。オプションの引数 start と end は、スライス表記のように解釈されます。sub が見つからない場合は -1 を返します。

ドキュメントから。

于 2009-03-23T19:01:32.797 に答える
0

これを試して:

with open(file_dmp_path, 'rb') as file:
fsize = bsize = os.path.getsize(file_dmp_path)
word_len = len(SEARCH_WORD)
while True:
    p = file.read(bsize).find(SEARCH_WORD)
    if p > -1:
        pos_dec = file.tell() - (bsize - p)
        file.seek(pos_dec + word_len)
        bsize = fsize - file.tell()
    if file.tell() < fsize:
        seek = file.tell() - word_len + 1
        file.seek(seek)
    else:
        break
于 2013-09-28T06:11:36.223 に答える