Strings in Python haben eine Find ("Somestring") -Methode, die die Indexnummer für "Somestring" in Ihrer Zeichenfolge zurückgibt.Wie kann ich das erste Vorkommen eines Teilstrings nach einem anderen Teilstring in Python finden?
Aber lassen Sie uns sagen, ich habe eine Zeichenfolge wie folgt aus:
„$ 5 $ 7 $ 9 Gesamtkosten: $ 35 $ 14“
Und ich möchte den Index des ersten Auftretens von ‚$‘ zu finden, der auftritt, nach die Zeichenfolge "Gesamtkosten" - Ich würde gerne in der Lage sein, Python zu sagen, nach '$' zu suchen, beginnend mit der Indexnummer für "Gesamtkosten", und die Indexnummer zurückgeben (relativ zur gesamten Zeichenfolge)) für das erste Vorkommen von '$', das Sie finden. Die Methode find() würde 0 zurückgeben und rfind() würde auch in diesem Fall nicht funktionieren.
Eine Art von kludgy Weg, dies zu tun, ist die folgende:
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)
Aber es scheint, wie es sollte ein einfacher Weg, dies zu tun, und ich nehme an, es wahrscheinlich ist, und ich weiß nur nicht, was es ist. Gedanken?
wäre dies zum Schneiden nützlich Insbesondere dann, wenn ich mir diese viel zu tun finden:
myString[myString.find("startingSubstr"):myString.find("endingSubstr")]
und ich mag natürlich die „endingSubstr“ derjenige sein, der nach dem „startingSubstr“ auftritt.
Sie sollten regex verwenden. Brauchen Sie wirklich die Platzierung des $ oder müssen Sie nur den Geldbetrag herausfinden? – lolopop
Ich bin ein bisschen wie ein Regex n00b - wie mache ich das mit Regexes? – CQP
Noch einmal, was brauchst du? – lolopop