Begrensd zoeken met jokertekens
Vergelijk een volledige tekenreeks met vraagteken- en sterjokertekens met maximaal 256 Unicode-codepunten per invoer.
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]| Project | Test lege reeksen, opeenvolgende sterren en emoji en weiger haken of backslashsyntaxis als niet-ondersteunde regels. |
|---|---|
| Controleer vóór het toepassen | Vergelijk het werkelijke gedrag met het verwachte resultaat. Onderzoek een mislukte controle voordat je verdergaat met wijzigingen. |
| Modellen | Stel een OpenAI-compatibel of Anthropic-endpoint in met de basis-URL en zo nodig een API-sleutel. Test de verbinding. Een lokale modelserver moet actief zijn; externe hulpmiddelen kunnen apart gegevens versturen. |
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]Geef zoeksyntaxis afspraken die gebruikers begrijpen
GlobHaven biedt een programmeeromgeving voor Windows om een eis aan patroonherkenning in een beoordeelbare softwarewijziging om te zetten. Begin bij wat gebruikers invoeren en de resultaten die ze verwachten. Een verzoek over zoeksyntaxis moet ondersteunde operatoren en foutgedrag vastleggen voordat het verbonden model een parser voorstelt of de zoekcode herschrijft.
Het voorbeeld met begrensde jokertekens biedt een mogelijk projectgesprek: een volledige tekst vergelijken met een bewust beperkte grammatica. Neem voorbeelden mee van patronen die je toepassing accepteert en afwijst en vraag de assistent te onderzoeken hoe die regels de interface bereiken. Zo belooft een wijziging aan één operator niet stilzwijgend een veel uitgebreidere zoektaal.
Beoordeel de voorgestelde code samen met meldingen en validatie bij de aanroeper. Test lege invoer, gewone tekens en combinaties van ondersteunde jokertekens met je eigen testgevallen. Neem een geval op dat volledige overeenstemming onderscheidt van het vinden van een deeltekst en controleer vervolgens het zichtbare zoekgedrag in de toepassing voordat je op de implementatie vertrouwt.
Een ongefilterd AI-model kan helpen als je ondersteunde OpenAI-compatibele of Anthropic-endpoint het aanbiedt. Stel de verbinding in met inloggegevens waar nodig en controleer tools en contextlimieten. GlobHaven levert de projectomgeving; modelgedrag blijft dienstafhankelijk en jij bepaalt welke voorgestelde syntaxis in je product past.
Voordat je een zoekfunctie uitbreidt
Hoe beschrijf ik zoekgedrag zonder een algoritme te noemen?
Geef patroon-invoerparen met de verwachte uitkomst waar of onwaar. Vermeld of de hele tekst moet overeenkomen en welke symbolen speciaal zijn. Die voorbeelden geven het model duidelijke afspraken zonder een mogelijk onnodige implementatie voor te schrijven.
Moet niet-ondersteunde syntaxis als letterlijke tekst worden behandeld?
Kies dat gedrag expliciet voor de toepassing. Moet het worden afgewezen, geef dan het verwachte foutpad en de melding. Vraag de assistent die keuze te behouden in plaats van de grammatica stilzwijgend uit te breiden omdat een andere patroonzoeker meer operatoren ondersteunt.
Wat toont het verschil tussen gedeeltelijke en volledige overeenstemming aan?
Gebruik invoer met extra tekens vóór of na een verder passend deel en vermeld de verwachte uitkomst. Test hetzelfde geval via de interface, want de aanroeper kan het patroon of de invoer transformeren.
Heeft een toegevoegd jokerteken invloed op opgeslagen zoekopdrachten?
Dat kan als voorheen letterlijke tekst een nieuwe betekenis krijgt. Inventariseer opgeslagen patronen en hun interpretatie voordat je de syntaxis verandert. Beoordeel compatibiliteitsvoorbeelden met de voorgestelde code en bepaal hoe bestaande zoekopdrachten na de wijziging moeten werken.
GlobHaven · Bijgewerkt 2026-10-25