Begrenzter Platzhalterabgleich
Vergleichen Sie eine ganze Zeichenkette mit Fragezeichen- und Sternplatzhaltern bei höchstens 256 Unicode-Codepunkten je Eingabe.
def wildcard(text, pattern):
if not isinstance(text, str) or not isinstance(pattern, str):
raise ValueError("text.required")
if len(text) > 256 or len(pattern) > 256:
raise ValueError("length.cap")
if any(ord(c) in (91, 93, 92) for c in pattern):
raise ValueError("syntax.unsupported")
previous = [True] + [False] * len(pattern)
for j, token in enumerate(pattern, 1):
previous[j] = token == "*" and previous[j - 1]
for char in text:
current = [False] * (len(pattern) + 1)
for j, token in enumerate(pattern, 1):
current[j] = (current[j - 1] or previous[j]) if token == "*" else (
previous[j - 1] and (token == "?" or token == char))
previous = current
return previous[-1]| Projekt | Prüfen Sie leere Zeichenketten, aufeinanderfolgende Sterne und Emoji und weisen Sie Klammer- oder Rückstrichsyntax als nicht unterstützt zurück. |
|---|---|
| Vor dem Anwenden prüfen | Vergleichen Sie das tatsächliche Verhalten mit dem erwarteten Ergebnis. Klären Sie fehlgeschlagene Prüfungen vor weiteren Änderungen. |
| Modelle | Richten Sie einen OpenAI-kompatiblen oder Anthropic-Endpunkt mit Basis-URL und gegebenenfalls API-Schlüssel ein. Testen Sie die Verbindung. Ein lokaler Modellserver muss laufen; entfernte Werkzeuge können Daten separat übertragen. |
def wildcard(text, pattern):
if not isinstance(text, str) or not isinstance(pattern, str):
raise ValueError("text.required")
if len(text) > 256 or len(pattern) > 256:
raise ValueError("length.cap")
if any(ord(c) in (91, 93, 92) for c in pattern):
raise ValueError("syntax.unsupported")
previous = [True] + [False] * len(pattern)
for j, token in enumerate(pattern, 1):
previous[j] = token == "*" and previous[j - 1]
for char in text:
current = [False] * (len(pattern) + 1)
for j, token in enumerate(pattern, 1):
current[j] = (current[j - 1] or previous[j]) if token == "*" else (
previous[j - 1] and (token == "?" or token == char))
previous = current
return previous[-1]Suchsyntax mit für Nutzer verständlichen Regeln versehen
GlobHaven bietet eine Programmierumgebung für Windows, um Anforderungen an Musterabgleiche in überprüfbare Softwareänderungen umzusetzen. Beginnen Sie mit der Nutzereingabe und den erwarteten Ergebnissen. Eine Anfrage zur Suchsyntax sollte unterstützte Operatoren und Fehlerverhalten benennen, bevor das verbundene Modell einen Parser vorschlägt oder den Abgleichcode neu schreibt.
Das begrenzte Platzhalterbeispiel bietet ein mögliches Projektthema: den Abgleich einer vollständigen Zeichenfolge mit bewusst eingeschränkter Grammatik. Bringen Sie Beispiele für zulässige und abgelehnte Muster Ihrer Anwendung mit und lassen Sie den Assistenten prüfen, wie diese Regeln die Oberfläche erreichen. So verspricht die Änderung eines Operators nicht stillschweigend eine wesentlich größere Suchsprache.
Prüfen Sie den vorgeschlagenen Code zusammen mit Meldungen und Validierung beim Aufrufer. Testen Sie leere Eingaben, gewöhnliche Zeichen und Kombinationen unterstützter Platzhalter mit eigenen Testdaten. Fügen Sie einen Fall hinzu, der vollständigen Zeichenfolgenabgleich von Teilzeichensuche unterscheidet, und prüfen Sie das sichtbare Suchverhalten der Anwendung, bevor Sie sich auf die Implementierung verlassen.
Ein ungefiltertes KI-Modell kann unterstützen, wenn Ihr unterstützter OpenAI-kompatibler oder Anthropic-Endpunkt es anbietet. Richten Sie die Verbindung mit erforderlichen Zugangsdaten ein und prüfen Sie Werkzeuge und Kontextgrenzen. GlobHaven stellt die Projektumgebung bereit; Modellverhalten bleibt dienstabhängig, und Sie entscheiden, welche vorgeschlagene Syntax in Ihr Produkt gehört.
Vor der Erweiterung einer Abgleichfunktion
Wie beschreibe ich den Abgleich ohne Algorithmusnamen?
Geben Sie Muster-Eingabe-Paare mit erwarteten Wahr- oder Falsch-Ergebnissen an. Legen Sie fest, ob die ganze Zeichenfolge passen muss und welche Zeichen speziell sind. Diese Beispiele geben dem Modell klare Regeln, ohne eine möglicherweise unnötige Implementierung vorzuschreiben.
Soll nicht unterstützte Syntax als wörtlicher Text gelten?
Wählen Sie dieses Verhalten ausdrücklich für die Anwendung. Soll sie abgelehnt werden, nennen Sie Fehlerpfad und Meldung. Lassen Sie den Assistenten diese Entscheidung erhalten, statt die Grammatik stillschweigend zu erweitern, weil ein anderer Abgleich mehr Operatoren unterstützt.
Was zeigt den Unterschied zwischen Teilzeichen- und vollständigem Abgleich?
Verwenden Sie eine Eingabe mit zusätzlichen Zeichen vor oder nach einem ansonsten passenden Teil und nennen Sie das erwartete Ergebnis. Testen Sie denselben Fall über die Oberfläche, da der Aufrufer Muster oder Eingabe umformen könnte.
Beeinflusst ein zusätzlicher Platzhalter bestehende gespeicherte Suchen?
Das kann passieren, wenn zuvor wörtlicher Text eine neue Bedeutung erhält. Ermitteln Sie gespeicherte Muster und deren Interpretation vor Syntaxänderungen. Prüfen Sie Kompatibilitätsbeispiele mit dem vorgeschlagenen Code und entscheiden Sie, wie bestehende Suchen danach arbeiten sollen.
GlobHaven · Aktualisiert 2026-10-25