Ograniczone dopasowanie symboli wieloznacznych
Dopasuj cały napis za pomocą symboli pytajnika i gwiazdki, z limitem 256 punktów Unicode na wejście.
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 | Sprawdź puste napisy, kolejne gwiazdki i emoji, odrzucając nawiasy kwadratowe i ukośnik odwrotny jako nieobsługiwaną składnię. |
|---|---|
| Sprawdź przed zastosowaniem | Porównaj rzeczywiste zachowanie z oczekiwanym wynikiem. Jeśli sprawdzenie się nie powiedzie, wyjaśnij przyczynę przed kolejnymi zmianami. |
| Modele | Dodaj endpoint zgodny z OpenAI lub Anthropic, podając bazowy URL i klucz API, jeśli jest wymagany. Sprawdź połączenie. Lokalny serwer modelu musi działać; zdalne narzędzia mogą przesyłać dane oddzielnie. |
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]Nadaj składni wyszukiwania kontrakt zrozumiały dla użytkowników
GlobHaven zapewnia środowisko programistyczne dla Windows do przekształcania wymagania dopasowania w zmianę oprogramowania możliwą do przeglądu. Zacznij od tekstu wpisywanego przez użytkowników i oczekiwanych wyników. Prośba dotycząca składni wyszukiwania powinna wskazywać obsługiwane operatory i zachowanie przy błędzie, zanim podłączony model zaproponuje parser lub przepisze kod dopasowania.
Przykład ograniczonej obsługi symboli wieloznacznych daje jeden z tematów rozmowy o projekcie: dopasowanie całego ciągu przy celowo ograniczonej gramatyce. Przedstaw wzorce akceptowane i odrzucane przez aplikację oraz poproś asystenta o sprawdzenie, jak te reguły docierają do interfejsu. Dzięki temu zmiana jednego operatora nie obiecuje po cichu znacznie szerszego języka wyszukiwania.
Przejrzyj proponowany kod wraz z komunikatami i walidacją po stronie wywołującej. Przetestuj puste wejście, zwykłe znaki i kombinacje obsługiwanych symboli wieloznacznych na własnych danych testowych. Uwzględnij przypadek odróżniający dopasowanie całego ciągu od znalezienia podciągu, a następnie sprawdź widoczne zachowanie wyszukiwania w aplikacji, zanim polegasz na implementacji.
Model AI bez filtrów może pomagać, jeśli oferuje go obsługiwany punkt końcowy zgodny z OpenAI lub punkt końcowy Anthropic. Skonfiguruj połączenie z danymi uwierzytelniającymi, gdy są wymagane, i sprawdź narzędzia oraz limity kontekstu. GlobHaven zapewnia środowisko projektu; zachowanie modelu nadal zależy od usługi, a Ty decydujesz, jaka proponowana składnia należy do produktu.
Przed rozszerzeniem funkcji dopasowania
Jak opisać dopasowanie bez nazywania algorytmu?
Podaj pary wzorzec–wejście z oczekiwanymi wynikami prawda lub fałsz. Określ, czy musi pasować cały ciąg i które symbole są specjalne. Te przykłady dają modelowi jasny kontrakt bez narzucania implementacji, której możesz nie potrzebować.
Czy nieobsługiwaną składnię traktować jako tekst dosłowny?
Wybierz to zachowanie dla aplikacji jawnie. Jeśli ma być odrzucana, podaj oczekiwaną ścieżkę błędu i komunikat. Poproś asystenta o zachowanie tego wyboru, zamiast cicho rozszerzać gramatykę dlatego, że inny mechanizm dopasowania obsługuje więcej operatorów.
Co pokazuje różnicę między dopasowaniem podciągu a pełnym?
Użyj wejścia z dodatkowymi znakami przed lub za pasującą częścią i podaj oczekiwany wynik. Przetestuj ten sam przypadek przez interfejs, ponieważ kod wywołujący może przekształcać wzorzec albo wejście.
Czy dodanie symbolu wieloznacznego wpłynie na zapisane wyszukiwania?
Może, jeśli wcześniej dosłowny tekst otrzyma nowe znaczenie. Przed zmianą składni zidentyfikuj zapisane wzorce i ich interpretację. Przejrzyj przykłady zgodności razem z proponowanym kodem i zdecyduj, jak istniejące wyszukiwania mają działać po zmianie.
GlobHaven · Zaktualizowano 2026-10-25