InStr

Sucht nach einem bestimmten Vorkommen einer Zeichenkette, beginnend von links oder rechts.

FundPos := InStr(Heuhaufen, Nadel , GroßKleinSensitiv, StartPos, Vorkommen)

Parameter

Heuhaufen

Typ: Zeichenkette

Eine Zeichenkette, die durchsucht werden soll.

Nadel

Typ: Zeichenkette

Die Zeichenkette, nach der gesucht werden soll.

GroßKleinSensitiv

Typ: Zeichenkette oder Integer (boolesch)

Wenn weggelassen, wird standardmäßig Off verwendet. Andernfalls geben Sie einen der folgenden Werte an:

On oder 1 (true): Die Suche erfolgt Groß-/Kleinschreibung-sensitiv.

Off oder 0 (false): Die Suche erfolgt nicht Groß-/Kleinschreibung-sensitiv, d.h. die Großbuchstaben A bis Z und die entsprechenden Kleinbuchstaben werden als identisch betrachtet.

Locale: Die Suche erfolgt nicht Groß-/Kleinschreibung-sensitiv, gemäß den Regeln der aktuellen Sprach- und Regionseinstellungen des Benutzers. Zum Beispiel behandeln die meisten englischen und westeuropäischen Sprach- und Regionseinstellungen die Großbuchstaben A bis Z, einschließlich ASCII-fremde Großbuchstaben wie Ä und Ü, und die entsprechenden Kleinbuchstaben als identisch. Locale ist 1- bis 8-mal langsamer als Off, abhängig von den zu vergleichenden Zeichenketten.

StartPos

Typ: Integer

Wenn weggelassen, wird die gesamte Zeichenkette durchsucht. Andernfalls geben Sie die Position an, ab der die Suche begonnen werden soll, wobei 1 das erste Zeichen ist, 2 das zweite und so weiter. Negative Werte zählen ab dem Ende von Heuhaufen, d.h. -1 ist das letzte Zeichen, -2 das vorletzte und so weiter.

Wenn Vorkommen weggelassen wird, bewirkt eine negative StartPos, dass von rechts nach links gesucht wird. StartPos hat jedoch keinen Einfluss auf die Suchrichtung, wenn Vorkommen angegeben ist.

Bei einer Suche von rechts nach links gibt StartPos die Position des letzten Zeichens des ersten möglichen Vorkommens von Nadel an. Zum Beispiel wird InStr("abc", "bc",, 2, +1) eine Übereinstimmung finden, aber InStr("abc", "bc",, 2, -1) nicht.

Wenn der Absolutwert von StartPos größer als die Länge von Heuhaufen ist, wird 0 zurückgegeben.

Vorkommen

Typ: Integer

Wenn weggelassen, wird standardmäßig die erste Übereinstimmung in Heuhaufen verwendet. Die Suche erfolgt von rechts nach links, wenn StartPos negativ ist, andernfalls von links nach rechts.

Wenn Vorkommen positiv ist, wird immer von links nach rechts gesucht. Geben Sie 2 für Vorkommen an, um die Position der zweiten Übereinstimmung zurückzugeben, 3 für die dritte Übereinstimmung usw.

Wenn Vorkommen negativ ist, wird immer von rechts nach links gesucht. Zum Beispiel bewirkt -2, dass das zweite Vorkommen von rechts gefunden wird.

Rückgabewert

Typ: Integer

Diese Funktion gibt die Position der Zeichenkette Nadel zurück, die in der Zeichenkette Heuhaufen vorkommt. Position 1 ist das erste Zeichen, damit 0 als Synonym für False verwendet werden kann, was sich gut für "nicht gefunden" eignet.

Egal welcher Wert für StartPos oder Vorkommen angegeben ist, der Rückgabewert ist immer relativ zum ersten Zeichen von Heuhaufen. Zum Beispiel ist die Position von "abc" in "123abc789" immer 4.

Konventionsgemäß kann das Vorkommen einer leeren Zeichenkette ("") an jeder Position gefunden werden. Da aber eine leere Nadel normalerweise nur versehentlich übergeben wird, wird dies als Fehler behandelt (es wird eine Ausnahme ausgelöst).

Fehlerbehandlung

In folgenden Fällen wird ein ValueError ausgelöst:

Bemerkungen

RegExMatch ist flexibler als InStr, wenn es darum geht, ein bestimmtes Suchmuster (regulärer Ausdruck) innerhalb einer Zeichenkette zu finden. Zum Finden einer einfachen Zeichenkette ist InStr jedoch besser geeignet.

InStr sucht nur bis zur ersten binären Null (Nullterminator), während RegExMatch die gesamte Länge der Zeichenkette durchsucht, egal ob sie binäre Nullen enthält.

RegExMatch, Is-Funktionen

Beispiele

Meldet die 1-basierte Position der Teilzeichenkette "abc" in der Zeichenkette "123abc789".

MsgBox InStr("123abc789", "abc") ; Gibt 4 zurück

Sucht die Nadel im Heuhaufen.

Heuhaufen := "The Quick Brown Fox Jumps Over the Lazy Dog"
Nadel := "Fox"
If InStr(Heuhaufen, Nadel)
    MsgBox "Die Zeichenkette wurde gefunden."
Else
    MsgBox "Die Zeichenkette wurde nicht gefunden."

Zeigt den Unterschied zwischen einer nicht-Groß-/Kleinschreibung-sensitiven und Groß-/Kleinschreibung-sensitiven Suche.

Heuhaufen := "The Quick Brown Fox Jumps Over the Lazy Dog"
Nadel := "the"
MsgBox InStr(Heuhaufen, Nadel, false, 1, 2) ; nicht-Groß-/Kleinschreibung-sensitive Suche, Startposition des zweiten Vorkommens zurückgeben
MsgBox InStr(Heuhaufen, Nadel, true) ; Groß-/Kleinschreibung-sensitive Suche, Startposition des ersten Vorkommens zurückgeben, gleiches Ergebnis wie oben