Python の文字列には、文字列内の「somestring」のインデックス番号を返す find("somestring") メソッドがあります。
しかし、次のような文字列があるとしましょう。
"$5 $7 $9 総費用: $35 $14"
そして、文字列 "Total Cost" の後に発生する "$" の最初の出現のインデックスを見つけたいです。Python に、" Total Cost" を検索し、最初に見つかった '$' のインデックス番号 (文字列全体に対する) を返します。この場合、find() メソッドは 0 を返し、rfind() も機能しません。
これを行うための一種の厄介な方法は次のとおりです。
def findStrAfterStr(myString, searchText, afterText):
splitString = myString.split(afterText)
myIndex = len(splitString[0]) + len(afterText) + splitString[1].find(searchText)
return myIndex
myString = "$5 $7 $9 Total Cost: $35 $14"
searchText = "$"
afterText = "Total Cost"
findStrAfterStr(myString, searchText, afterText)
しかし、これを行うにはもっと簡単な方法があるはずです。おそらくあると思いますが、それが何であるかはわかりません。考え?
これは、自分がこれを頻繁に行っていることに気付いたときに、スライスに特に役立ちます。
myString[myString.find("startingSubstr"):myString.find("endingSubstr")]
そして当然、「endingSubstr」を「startingSubstr」の後に発生するものにしたいと考えています。