مطابقة محدودة بأحرف البدل
طابق نصا كاملا باستخدام علامتي الاستفهام والنجمة ضمن 256 نقطة Unicode لكل مدخل.
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]| المشروع | اختبر النص الفارغ والنجوم المتتالية والرموز التعبيرية وارفض الأقواس المربعة والشرطة المائلة العكسية بوصفها صيغة غير مدعومة. |
|---|---|
| راجع قبل التطبيق | قارن السلوك الفعلي بالنتيجة المتوقعة. إذا فشل فحص، تحقّق من السبب قبل إجراء تغييرات إضافية. |
| النماذج | اضبط نقطة اتصال متوافقة مع OpenAI أو Anthropic باستخدام العنوان الأساسي ومفتاح API عند الحاجة. اختبر الاتصال. يجب أن يعمل خادم النموذج المحلي؛ وقد ترسل الأدوات البعيدة البيانات بشكل منفصل. |
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]امنح صياغة البحث عقدا يفهمه المستخدمون
يوفر GlobHaven بيئة برمجة على Windows لتحويل متطلبات المطابقة إلى تعديل برمجي قابل للمراجعة. ابدأ بما يكتبه المستخدمون والنتائج التي يتوقعونها. ينبغي لطلب متعلق بصياغة البحث تحديد العوامل المدعومة وسلوك الفشل قبل أن يقترح النموذج المتصل محللا أو يعيد كتابة شيفرة المطابقة.
يوفر مثال محارف البدل المحدود موضوعا محتملا لنقاش المشروع: مطابقة سلسلة كاملة بقواعد محدودة عمدا. أحضر أنماطا يقبلها تطبيقك وأخرى يرفضها، واطلب فحص وصول تلك القواعد إلى الواجهة. يمنع ذلك تعديل عامل واحد من الوعد ضمنيا بلغة بحث أوسع بكثير.
راجع الشيفرة المقترحة مع الرسائل والتحقق لدى المستدعي. اختبر المدخلات الفارغة والمحارف العادية وتوليفات محارف البدل المدعومة باستخدام حالاتك. أدرج حالة تميز مطابقة السلسلة كاملة من العثور على جزء منها، ثم تحقق من سلوك البحث المرئي في التطبيق قبل الاعتماد على التنفيذ.
قد يساعدك نموذج ذكاء اصطناعي غير مفلتر إذا وفرته نقطة نهاية مدعومة متوافقة مع OpenAI أو تابعة لـ Anthropic. أعد الاتصال ببيانات الاعتماد عند الحاجة وافحص أدواته وحدود سياقه. يوفر GlobHaven بيئة المشروع؛ ويظل سلوك النموذج معتمدا على الخدمة، وأنت تقرر أي صياغة مقترحة تناسب منتجك.
قبل توسيع ميزة المطابقة
كيف أصف سلوك المطابقة دون تسمية خوارزمية؟
قدم أزواج أنماط ومدخلات مع نتائج صح أو خطأ متوقعة. حدد هل يجب مطابقة السلسلة كاملة وما الرموز الخاصة. تمنح هذه الأمثلة النموذج عقدا واضحا دون فرض تنفيذ قد لا تحتاجه.
هل ينبغي معاملة الصياغة غير المدعومة كنص حرفي؟
اختر ذلك السلوك صراحة للتطبيق. إن وجب رفضها، فأدرج مسار الخطأ ورسالته المتوقعين. اطلب الحفاظ على الخيار بدلا من توسيع القواعد بصمت لأن أداة مطابقة أخرى تدعم عوامل أكثر.
ما الذي يوضح الفرق بين المطابقة الجزئية والكاملة؟
استخدم مدخلا بمحارف إضافية قبل الجزء المطابق أو بعده وحدد النتيجة المتوقعة. اختبر الحالة نفسها عبر الواجهة، فقد يحول المستدعي النمط أو المدخل.
هل تؤثر إضافة محرف بدل في عمليات البحث المحفوظة؟
قد يحدث ذلك إن اكتسب نص كان حرفيا معنى جديدا. حدد الأنماط المخزنة وتفسيرها قبل تغيير الصياغة. راجع أمثلة التوافق مع الشيفرة المقترحة وقرر كيف تتصرف عمليات البحث القائمة بعد التغيير.
GlobHaven · آخر تحديث 2026-10-25