tuple_strrchrtuple_strrchrTupleStrrchrTupleStrrchrtuple_strrchr (Operator)

Name

tuple_strrchrtuple_strrchrTupleStrrchrTupleStrrchrtuple_strrchr — Rückwärtssuchen nach einem Zeichen in einem Tupel von Strings.

Signatur

tuple_strrchr( : : String, ToFind : Position)

Herror tuple_strrchr(const char* String, const char* ToFind, Hlong* Position)

Herror T_tuple_strrchr(const Htuple String, const Htuple ToFind, Htuple* Position)

void TupleStrrchr(const HTuple& String, const HTuple& ToFind, HTuple* Position)

HTuple HTuple::TupleStrrchr(const HTuple& ToFind) const

static void HOperatorSet.TupleStrrchr(HTuple stringVal, HTuple toFind, out HTuple position)

HTuple HTuple.TupleStrrchr(HTuple toFind)

def tuple_strrchr(string: MaybeSequence[str], to_find: MaybeSequence[str]) -> Sequence[int]

def tuple_strrchr_s(string: MaybeSequence[str], to_find: MaybeSequence[str]) -> int

Beschreibung

tuple_strrchrtuple_strrchrTupleStrrchrTupleStrrchrTupleStrrchrtuple_strrchr sucht in dem Eingabetupel StringStringStringStringstringValstring nach den in dem Eingabetupel ToFindToFindToFindToFindtoFindto_find definierten Zeichen. Beide Eingabetupel müssen durchwegs aus Strings bestehen. Anderenfalls bricht tuple_strrchrtuple_strrchrTupleStrrchrTupleStrrchrTupleStrrchrtuple_strrchr mit einem entsprechenden Fehler ab. Enthalten die Strings von ToFindToFindToFindToFindtoFindto_find mehr als ein Zeichen, so wird ausschließlich das erste Zeichen in einem String berücksichtigt und alle folgenden Zeichen ignoriert. Die Suche nach einem Zeichen geschieht rückwärts also vom Ende zum Anfang des zu untersuchenden Strings. Besteht StringStringStringStringstringValstring nur aus einem einzigen String, so werden in diesem alle in ToFindToFindToFindToFindtoFindto_find definierten Zeichen gesucht. Das Ausgabetupel besteht also in diesem Fall aus genauso vielen Elementen wie das Eingabetupel ToFindToFindToFindToFindtoFindto_find. Ist die Suche nach einem Zeichen erfolgreich, so wird die Position (beginnend mit 0 für das erste Zeichen eines Strings), an der das Zeichen das erste Mal innerhalb des untersuchten Strings gefunden wurde, in dem Ausgabetupel PositionPositionPositionPositionpositionposition zurückgegeben. Wurde ein Zeichen nicht gefunden, so wird für dessen Position der Wert -1 zurückgegeben. Enthalten beide Eingabetupel StringStringStringStringstringValstring und ToFindToFindToFindToFindtoFindto_find gleich viele Elemente, so werden sie elementweise bearbeitet, das heißt, das erste Zeichen im ersten Element von ToFindToFindToFindToFindtoFindto_find wird in dem ersten String von StringStringStringStringstringValstring, das erste Zeichen des zweiten ELements von ToFindToFindToFindToFindtoFindto_find wird im zweiten String von StringStringStringStringstringValstring gesucht und so weiter. Die einzelnen Elemente des Ausgabetupels enthalten dann das Resultat der elementweisen Suche. Besteht ToFindToFindToFindToFindtoFindto_find nur aus einem Element, so wird das dort definierte Zeichen in allen Strings des Eingabetupels StringStringStringStringstringValstring gesucht. Das Ausgabetupel PositionPositionPositionPositionpositionposition besitzt dann also genauso viele Elemente wie das Eingabetupel StringStringStringStringstringValstring. Weisen die beiden Eingabetupel StringStringStringStringstringValstring und ToFindToFindToFindToFindtoFindto_find eine unterschiedliche Anzahl an Elementen auf, die von 1 verschieden ist, so bricht tuple_strrchrtuple_strrchrTupleStrrchrTupleStrrchrTupleStrrchrtuple_strrchr mit einem entsprechenden Fehler ab.

Falls eines oder beide der Eingabetupel leer sind, gibt der Operator ein leeres Tupel zurück.

Unicode Codepoints versus Bytes

Die Position bezieht sich auf Unicode Codepoints. Ein Codepoint kann aus mehreren Bytes im UTF-8 String zusammengesetzt sein. Wenn die Position sich auf die Bytes des Strings beziehen soll, kann dieser Operator mit set_system('tsp_tuple_string_operator_mode','byte')set_system("tsp_tuple_string_operator_mode","byte")SetSystem("tsp_tuple_string_operator_mode","byte")SetSystem("tsp_tuple_string_operator_mode","byte")SetSystem("tsp_tuple_string_operator_mode","byte")set_system("tsp_tuple_string_operator_mode","byte") in einen Byte-Modus umgeschaltet werden. Wenn 'filename_encoding'"filename_encoding""filename_encoding""filename_encoding""filename_encoding""filename_encoding" auf 'locale'"locale""locale""locale""locale""locale" gesetzt ist (legacy), verwendet dieser Operator immer den Byte-Modus.

Für allgemeine Informationen zu String-Operationen siehe auch Tupel / String-Operationen.

HDevelop Inline-Operation

HDevelop unterstützt eine Inline-Operation für tuple_strrchrtuple_strrchrTupleStrrchrTupleStrrchrTupleStrrchrtuple_strrchr, die innerhalb eines Ausdrucks in der folgenden Syntax verwendet werden kann:

Position := strrchr(String, ToFind)

Ausführungsinformationen

Parameter

StringStringStringStringstringValstring (input_control)  string(-array) HTupleMaybeSequence[str]HTupleHtuple (string) (string) (HString) (char*)

Eingabetupel mit zu untersuchenden Strings.

ToFindToFindToFindToFindtoFindto_find (input_control)  string(-array) HTupleMaybeSequence[str]HTupleHtuple (string) (string) (HString) (char*)

Eingabetupel mit zu suchenden Zeichen.

PositionPositionPositionPositionpositionposition (output_control)  integer(-array) HTupleSequence[int]HTupleHtuple (integer) (int / long) (Hlong) (Hlong)

Positionen der gesuchten Zeichen in den untersuchten Strings.

Alternativen

tuple_strchrtuple_strchrTupleStrchrTupleStrchrTupleStrchrtuple_strchr, tuple_strstrtuple_strstrTupleStrstrTupleStrstrTupleStrstrtuple_strstr, tuple_strrstrtuple_strrstrTupleStrrstrTupleStrrstrTupleStrrstrtuple_strrstr, tuple_strlentuple_strlenTupleStrlenTupleStrlenTupleStrlentuple_strlen, tuple_substrtuple_substrTupleSubstrTupleSubstrTupleSubstrtuple_substr, tuple_str_first_ntuple_str_first_nTupleStrFirstNTupleStrFirstNTupleStrFirstNtuple_str_first_n, tuple_str_last_ntuple_str_last_nTupleStrLastNTupleStrLastNTupleStrLastNtuple_str_last_n, tuple_splittuple_splitTupleSplitTupleSplitTupleSplittuple_split, tuple_environmenttuple_environmentTupleEnvironmentTupleEnvironmentTupleEnvironmenttuple_environment

Modul

Foundation