InStr()

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

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

Parameter

Heuhaufen

Eine Zeichenkette, die durchsucht werden soll.

Nadel

Die Zeichenkette, nach der gesucht werden soll.

GroßKleinSensitiv

Wenn leer oder weggelassen, wird standardmäßig 0 (false) verwendet. Andernfalls geben Sie 1 (true) an, um die Suche Groß-/Kleinschreibung-sensitiv zu machen, d.h. die Groß-/Kleinschreibung muss exakt übereinstimmen. Die Methode der Nichtsensitivität hängt von StringCaseSense ab.

StartPos

Wenn weggelassen, wird standardmäßig 1 verwendet (der Anfang von Heuhaufen). Andernfalls geben Sie 2 an, um beim zweiten Zeichen zu beginnen, 3, um beim dritten zu beginnen, und so weiter.

Wenn StartPos die Länge von Heuhaufen überschreitet, wird 0 zurückgegeben. [AHK_L 57+]: Wenn StartPos leer, 0 oder negativ ist, wird die Suche in umgekehrter Richtung (von rechts nach links) durchgeführt, beginnend beim Offset am Ende.

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

Vorkommen [AHK_L 57+]

Wenn weggelassen, wird standardmäßig 1 verwendet (die erste Übereinstimmung in Heuhaufen). Wenn leer, wird standardmäßig 0 verwendet. Andernfalls geben Sie 2 an, um die Position der zweiten Übereinstimmung zurückzugeben, 3 für die dritte Übereinstimmung usw.

Rückgabewert

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.

Das Vorkommen einer leeren Zeichenkette ("") kann an jeder Position gefunden werden, d.h. wenn Nadel eine leere Zeichenkette ist, wird 1 zurückgegeben. Da eine leere Nadel normalerweise nur versehentlich übergeben wird, wird dies in AutoHotkey v2 als Fehler behandelt.

Bemerkungen

Diese Funktion ist eine Kombination aus IfInString und StringGetPos.

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.

RegExMatch(), StringGetPos, IfInString, StringCaseSense, If Var [not] in/contains VergleichListe, If Var [not] between Min and Max, If Var is [not] Typ

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