web-dev-qa-db-ja.com

Pythonでの文字列検索の例

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

60
Joan Venge

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
43
SilentGhost

あなたが何を探しているのかわかりません、つまり find() ですか?

>>> x = "Hello World"
>>> x.find('World')
6
>>> x.find('Aloha');
-1
109

ここ から:

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

それで、いくつかの例:

>>> str = "abcdefioshgoihgs sijsiojs "
>>> str.find('a')
0
>>> str.find('g')
10
>>> str.find('s',11)
15
>>> str.find('s',15)
15
>>> str.find('s',16)
17
>>> str.find('s',11,14)
-1
30
Phil H

正直なところ、これはコマンドラインで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のインタープリターは、この種の実験を簡単にします。 (同様の通訳を持つ他の言語でも同じです)

17
Dana

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

例:

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

出力:3

*インポート不要

完全な構文:

stringEx.rfind(substr, beg=0, end=len(stringEx))
6
LucianNovo

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

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

ドキュメント から。

2
MarkusQ

これを試して:

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
0

xが文字列であり、文字列でもあるyを検索する場合、2つのケースがあります:case 1:yはxに存在しますx.find(y)= xのyのインデックス(位置)。 ケース2:yが存在しないため、x.find(y) = -1これは、yがxに見つからないことを意味します。

0
N.Elsayed