Ich bin relativ neu in Python, und etwas macht etwas aus. Wenn ich str.rfind("test")
für eine Zeichenfolge aufruft, entspricht die Ausgabe im Wesentlichen str.find("test")
. Am besten zeige ich Ihnen ein Beispiel:
Nach meinem Verständnis ist der Wert von line.find
in Ordnung, aber der Wert von line.rfind
sollte 9
sein. Fehle ich diese Funktionen falsch oder benutze ich sie nicht gut?
Ich denke, Sie erwarten rfind
, um den Index des ganz rechts stehenden Zeichens in der ersten / ganz linken Übereinstimmung für "what"
zurückzugeben. Es gibt tatsächlich den Index des ganz links stehenden Zeichens in der letzten / am weitesten rechts Übereinstimmung für "what
"zurück. Um die Dokumentation :
str.rfind(sub[, start[, end]])
Gibt den höchsten Index in der Zeichenkette zurück, in dem die Teilzeichenfolge sub gefunden wird, so dass sub in
s[start:end]
enthalten ist. Die optionalen Argumente start und end werden als Slice-Notation interpretiert. Gibt-1
bei Fehler zurück.
"ab c ab".find("ab")
wäre 0
, weil das am weitesten links liegende Vorkommen am linken Ende liegt.
"ab c ab".rfind("ab")
wäre 5
, weil das am weitesten rechts liegende Vorkommen an diesem Index beginnt.
find () gibt den Index der ersten Übereinstimmung zurück. Aber rfind gibt Ihnen das letzte Vorkommen des Musters. Es wird klar sein, wenn Sie versuchen, den Fall wiederholter Übereinstimmungen abzustimmen.
Überprüfen Sie dieses Beispiel %Vor%