Position einer Teilzeichenkette
In „The kit parses logs: ERROR at line 12, then INFO, then ERROR again.“ steht das erste ERROR bei Index 21, Zeile 1, Spalte 22, und endet vor 26. Punkte und Klammern werden als normaler Text gesucht. Kostenlos in Ihrem Browser.
- Kostenlos
- Läuft in Ihrem Browser
- Ohne Anmeldung
- Ihre Daten bleiben auf Ihrem Gerät
Im Browser ausführen – kostenlos
Rechenbeispiel
- Berechnen
- ERROR
- Index
- 21
- Start
- 0
- Länge
- 67
- Länge des Suchbegriffs
- 5
Die erste Erscheinung einer Phrase zu finden ist der erste Schritt fast jeder Textpipeline: Sie lokalisieren eine Markierung und schneiden, zerlegen oder heben danach ab diesem Zeichenindex hervor. Dieses Werkzeug zur Position einer Teilzeichenkette nimmt Ihren Quelltext und einen nicht leeren Suchbegriff und liefert den nullbasierten Zeichenindex des ersten wörtlichen Treffers, plus ob er gefunden wurde, den exklusiven Endoffset sowie die einsbasierte Zeile und Spalte, damit Sie im Editor zum Treffer springen. Optionales start lässt Sie nach einem vorherigen Treffer fortsetzen. Optionaler groß-/kleinschreibungsunabhängiger Abgleich deckt gemischte Entwürfe ab. Leere Suchbegriffe scheitern mit ungültiger Eingabe, damit Massenjobs die leere Zeichenkette nie als Treffer an jedem Offset behandeln.
Was die Position einer Teilzeichenkette bedeutet und wann Sie sie nutzen
Die Position einer Teilzeichenkette zu finden bedeutet, die Quellzeichenkette von links zu scannen — oder von einem optionalen start-Offset — am ersten nicht überlappenden wörtlichen Treffer eines Suchbegriffs anzuhalten und den Zeichenindex dieses Treffers zu melden, damit ein späterer Schritt von dort schneiden, zerlegen oder hervorheben kann. Der Abgleich ist wörtlich: suchen Sie nach einem Punkt, einer Klammer oder einer eckigen Klammer, sind diese Zeichen Klartext, keine reguläre-Ausdrucks-Syntax, sodass das Werkzeug für Nicht-Entwickler und für Pipelines, die bei Sonderzeichen nie überrascht werden dürfen, vorhersehbar bleibt.
Bevorzugen Sie diesen Rechner, wenn die Suchintention die Position einer Teilzeichenkette, der Index einer Zeichenkette, das Lokalisieren des ersten Vorkommens oder der Zeichenoffset eines Tokens ist. Typische Quellen sind Protokollzeilen, in denen Sie die erste ERROR-Markierung brauchen, Konfigurationsschnipsel, in denen ein Schlüssel gefunden werden muss, bevor ein Wert geschnitten wird, HTML oder Markdown, wo ein Überschriftenbegrenzer einen Abschnitt beginnt, und CSV- oder TSV-Zellen, in denen ein Trennzeichen oder ein zitiertes Feld beginnt. Optionaler groß-/kleinschreibungsunabhängiger Abgleich faltet die Buchstabengröße, sodass das erste Hello, HELLO oder hello ohne Variantenliste erfasst wird.
Nutzen Sie dieses Produkt nicht, wenn Sie den Treffer umschreiben müssen — das ist eine andere SEO-Intention, die von Ersetze-erstes und Suche-und-Ersetze-Werkzeugen bedient wird — und auch nicht, wenn Sie jedes Vorkommen listen, Fanggruppen, Lookarounds oder eine mehrzeilige Regex-Engine brauchen.
Wofür es sich eignet und wo es endet
Rufen Sie das kostenlose Browser-Werkzeug zur Position einer Teilzeichenkette für Einfügeprüfungen, Klassendemonstrationen, Inhalts-QA und schnelles Lokalisieren auf, ohne ein Desktop-Dienstprogramm zu installieren oder indexOf-Schnipsel in jeder Sprache zu schreiben. Ein typischer Workflow findet die erste Abschnittsmarkierung, liest index und end und schneidet dann die folgende Überschrift. Ein anderer Workflow wandert aufeinanderfolgende Treffer, indem er das vorherige end als nächstes start sendet, und lokalisiert so das zweite und spätere Vorkommen ohne ein Ersetze-alles-Werkzeug.
Kombinieren Sie diesen Endpunkt mit Ersetze-erstes, wenn ein späterer Schritt nur diesen Treffer umschreiben muss, oder mit Suchen und Ersetzen, wenn jeder Treffer wechseln muss, behalten Sie die Teilzeichenketten-Position aber als eigene Landing, damit die SEO-Intention nicht mit Editoren vermischt wird, die Text mutieren. Erwarten Sie kein HTML-bewusstes Überspringen von Tags, strukturierte Dokument-Merge-Felder, Graphemluster-Indizes oder locale-spezifische Kollation jenseits des standardmäßigen groß-/kleinschreibungsunabhängigen Abgleichs — das sind getrennte Probleme.
Autoren, die SDKs ausliefern, können text und find als Pflichtfelder dokumentieren und eine Mehrtreffer-Quelle zeigen, in der nur der erste Index zurückkommt, plus ein leeres-find-Fehlerbeispiel, damit Integratoren beide Seiten des Vertrags sehen.
Anwendungsfälle
Die erste Protokoll- oder Fehlermarkierung finden
Parser und Support-Werkzeuge finden das erste ERROR, TODO oder Trennzeichen und schneiden oder heben danach ab diesem Zeichenindex hervor, ohne die Datei umzuschreiben.
Einen Scan nach einem vorherigen Treffer fortsetzen
Senden Sie das vorherige exklusive end als start, um das zweite und spätere Vorkommen nacheinander in Vorlagen, Protokollen und Konfigurationsdateien zu durchlaufen.
Häufige Fragen
Wie finde ich die Position einer Teilzeichenkette?
Der Antwort-index ist der nullbasierte Zeichenoffset des ersten Treffers oder -1, wenn keiner vorliegt.
Ist der Index nullbasiert oder einsbasiert?
index ist nullbasiert, derselbe Vertrag wie JavaScript String indexOf, sodass Sie ihn an slice übergeben können. Wenn ein Treffer gefunden wird, ist position die einsbasierte Zeichennummer, die Menschen in einem Editor erwarten, und line und column sind ebenfalls einsbasiert.
Was geschieht, wenn der Suchbegriff leer ist?
Eine leere find-Zeichenkette wird abgelehnt, damit Pipelines die leere Zeichenkette nie als Treffer an jedem Offset behandeln; diese Fehler werden nicht berechnet.
Unterstützt find reguläre Ausdrücke?
Nein. Der Suchbegriff wird stets als wörtliche Zeichenkette behandelt. Punkte, Klammern und andere Regex-Metazeichen treffen sich selbst, damit das Verhalten für Redakteure und Massenjobs vorhersehbar bleibt.
Wie finde ich das zweite Vorkommen?
Suchen Sie erneut und geben Sie als Startposition das Ende des ersten Treffers an, im Beispiel 26. Die Suche beginnt dort und findet das nächste ERROR, ohne den Anfang des Textes noch einmal zu durchlaufen.
Verwandte Tools
Für Entwickler — API-Zugang
Alles auf dieser Seite ist auch per API verfügbar. Dieser Abschnitt richtet sich an Teams, die es in ihre eigenen Systeme einbinden möchten; alle anderen nutzen einfach das Tool oben.
Endpunkt
Authentifizierung per Bearer-Token. Ein einziger POST stellt die Aufgabe in die Warteschlange; das Ergebnis erhalten Sie per Webhook oder über einen signierten Link.
Aufruf aus Ihrem Stack
curl -X POST https://api.kit.forhosting.com/str/index-of \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"text":"The kit parses logs: ERROR at line 12, then INFO, then ERROR again.","find":"ERROR"}'const res = await fetch("https://api.kit.forhosting.com/str/index-of", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"text": "The kit parses logs: ERROR at line 12, then INFO, then ERROR again.",
"find": "ERROR"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/str/index-of",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"text": "The kit parses logs: ERROR at line 12, then INFO, then ERROR again.",
"find": "ERROR"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/str/index-of", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"text":"The kit parses logs: ERROR at line 12, then INFO, then ERROR again.","find":"ERROR"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"text":"The kit parses logs: ERROR at line 12, then INFO, then ERROR again.","find":"ERROR"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/str/index-of", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Beispiel-Anfrage
{
"text": "The kit parses logs: ERROR at line 12, then INFO, then ERROR again.",
"find": "ERROR"
}Beispiel-Antwort
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "str.index_of",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}Die API arbeitet asynchron: Sie erhalten sofort eine task_id. Polling ist mit 1 Anfrage pro Sekunde erlaubt.
Preis
Der Preis steht auf der Seite – keine Tokens, keine Credits. Fehlgeschlagene Aufgaben werden nicht berechnet.
Limits
max_chars | 100000 |
Fehler
| HTTP | Code | Bedeutung |
|---|---|---|
401 | unauthorized | Der API-Schlüssel fehlt oder ist ungültig – prüfen Sie den Authorization-Header (Bearer). |
402 | insufficient_balance | Ihr Guthaben reicht für diese Aufgabe nicht aus – Aufladungen verfallen nicht. |
404 | unknown_type | Unbekannter Aufgabentyp – prüfen Sie das Feld „type“ gegen den Katalog. |
429 | rate_limited | Zu viele Anfragen – warten Sie kurz; Polling ist mit 1 Anfrage pro Sekunde erlaubt. |
Technische Hinweise
Was die Position einer Teilzeichenkette bedeutet und wann Sie sie nutzen
Ein leerer Suchbegriff wirft invalid_input, was Massenjobs vor dem klassischen Fehler schützt, die leere Zeichenkette als Treffer zwischen jedem Zeichen zu behandeln.
Eingabevertrag, Ablehnung leerer Suche und Lesen der Antwort
Optionales start ist standardmäßig null und ist der nullbasierte UTF-16-Index, an dem der Scan beginnt, sodass Sie nach einem vorherigen Treffer fortsetzen können, ohne das Präfix erneut zu scannen. Wenn ein Treffer gefunden wird, enthält die Antwort außerdem position als den einsbasierten menschlichen Index, end als den exklusiven Endoffset, line und column als einsbasierte Editor-Koordinaten und matched als den genauen Ausschnitt am Treffer, sodass eine groß-/kleinschreibungsunabhängige Suche die ursprüngliche Schreibung zeigt. Ein fehlender Treffer ist ein gültiger Erfolg: found ist false und index ist minus eins, das ehrliche Ergebnis für einen Heuhaufen, der die Nadel nicht enthält. Nutzen Sie index mit slice, wenn ein Skript den Rest schneiden soll; nutzen Sie line und column, wenn eine Oberfläche zum Treffer scrollen soll; nutzen Sie found allein, wenn ein Tor nur wissen muss, ob die Markierung existiert. Senden Sie einen JSON-Body mit dem Pflicht-String-Feld text auf die Quelle, die Sie scannen wollen, und dem Pflicht-String-Feld find auf einen nicht leeren Suchbegriff. Optionales case_insensitive ist standardmäßig false für exakte Großschreibung; setzen Sie es auf true, wenn der erste gemischtschreibige Entwurf trotzdem matchen soll. Aliase werden für ältere Clients akzeptiert: text auch als input, value, s, content, source oder haystack; find als search, needle, substring, query oder pattern; start als from, from_index oder offset; case_insensitive als ignore_case, ci oder insensitive. Fehlendes text, fehlendes find, ein Nicht-String-Wert, ein negatives oder nicht ganzzahliges start oder eine leere find-Zeichenkette werfen invalid_input mit einer Meldung, die das Problem benennt, und diese Fehler werden auf der vorausbezahlten API nicht berechnet. Die Länge ist auf einhunderttausend Zeichen begrenzt, damit Browser- und Worker-Scans beschränkt bleiben. Bei Erfolg enthält die Antwort stets index als den nullbasierten Zeichenoffset oder minus eins, wenn keiner vorliegt, found als Boolean, text und find wie angewandt, start und case_insensitive wie genutzt, length und find_length als Zeichenlängen und method immer gleich index_of.
API-Nutzung, Preise, Workflows und praktische Grenzen
Nutzen Sie die vorausbezahlte KIT-API, wenn ein CMS, ETL-Job, Formular-Backend, Support-Desk, Parser oder mobiler Client denselben Lokalisierer unter Saldo zu $0.002 pro erfolgreichem Element braucht; Validierungsfehler verbrauchen nach Ablehnung durch die Engine nie Saldo.
Integrationsbeispiele
QA und deterministische Fixtures
Testharness nageln index, found, line und column fest, damit ein Refactor, der zu Ersetzen, Regex oder leerem-find-Abgleich wechselt, die Continuous Integration sofort scheitern lässt.
Technische Fragen
Ist das Werkzeug zur Position einer Teilzeichenkette kostenlos?
Das Browser-Werkzeug läuft kostenlos auf Ihrem Gerät. API-Aufrufe nutzen vorausbezahltes KIT-Saldo zu $0.002 pro erfolgreichem Element; Validierungsfehler werden nicht berechnet.