Pencocokan wildcard berbatas
Cocokkan seluruh teks dengan wildcard tanda tanya dan bintang dalam batas 256 titik Unicode tiap masukan.
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]| Proyek | Uji teks kosong, bintang berurutan dan emoji, serta tolak kurung siku atau garis miring terbalik sebagai sintaks yang tidak didukung. |
|---|---|
| Tinjau sebelum menerapkan | Bandingkan perilaku sebenarnya dengan hasil yang diharapkan. Jika pemeriksaan gagal, cari penyebabnya sebelum membuat perubahan lain. |
| Model | Atur endpoint kompatibel OpenAI atau Anthropic dengan URL dasar dan kunci API jika diperlukan. Uji koneksi. Server model lokal harus berjalan; alat jarak jauh dapat mengirim data secara terpisah. |
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]Berikan sintaks pencarian kontrak yang dapat dipahami pengguna
GlobHaven menyediakan ruang kerja pemrograman Windows untuk mengubah persyaratan pencocokan menjadi perubahan perangkat lunak yang dapat ditinjau. Mulailah dengan masukan pengguna dan hasil yang mereka harapkan. Permintaan tentang sintaks pencarian harus mengidentifikasi operator yang didukung dan perilaku kegagalan sebelum model yang terhubung mengusulkan pengurai atau menulis ulang kode pencocokan.
Contoh wildcard berbatas menyediakan satu kemungkinan diskusi proyek: mencocokkan seluruh string dengan tata bahasa yang sengaja dibatasi. Sertakan contoh pola yang diterima dan ditolak aplikasi, lalu minta asisten memeriksa bagaimana aturan itu sampai ke antarmuka. Ini mencegah perubahan satu operator diam-diam menjanjikan bahasa pencarian yang jauh lebih luas.
Tinjau kode usulan bersama pesan dan validasi pada pemanggil. Uji masukan kosong, karakter biasa, dan kombinasi wildcard yang didukung menggunakan data uji sendiri. Sertakan kasus yang membedakan pencocokan seluruh string dari pencarian substring, lalu periksa perilaku pencarian yang terlihat dalam aplikasi sebelum mengandalkan implementasi.
Model AI tanpa filter dapat membantu jika endpoint kompatibel OpenAI atau Anthropic yang didukung menawarkannya. Siapkan koneksi dengan kredensial bila diperlukan dan periksa alat serta batas konteksnya. GlobHaven menyediakan ruang kerja proyek; perilaku model tetap bergantung pada layanan, dan Anda menentukan sintaks usulan mana yang layak masuk produk.
Sebelum memperluas fitur pencocokan
Bagaimana menjelaskan perilaku pencocokan tanpa menyebut algoritme?
Berikan pasangan pola dan masukan dengan hasil benar atau salah yang diharapkan. Nyatakan apakah seluruh string harus cocok dan simbol mana yang khusus. Contoh tersebut memberi model kontrak yang jelas tanpa menentukan implementasi yang mungkin tidak Anda perlukan.
Haruskah sintaks yang tidak didukung diperlakukan sebagai teks literal?
Pilih perilaku itu secara eksplisit untuk aplikasi. Jika harus ditolak, sertakan jalur kesalahan dan pesan yang diharapkan. Minta asisten mempertahankan pilihan itu, bukan diam-diam memperluas tata bahasa karena pencocok lain mendukung lebih banyak operator.
Apa yang menunjukkan perbedaan pencocokan substring dan seluruh string?
Gunakan masukan dengan karakter tambahan sebelum atau sesudah bagian yang seharusnya cocok dan nyatakan hasil yang diharapkan. Uji kasus yang sama melalui antarmuka, karena pemanggil mungkin mengubah pola atau masukannya.
Apakah wildcard tambahan akan memengaruhi pencarian yang sudah disimpan?
Bisa, jika teks yang sebelumnya literal mendapat makna baru. Identifikasi pola tersimpan dan penafsirannya sebelum mengubah sintaks. Tinjau contoh kompatibilitas bersama kode usulan dan putuskan bagaimana pencarian yang ada harus berperilaku setelah perubahan.
GlobHaven · Diperbarui 2026-10-25