الانتقال إلى المحتوى الرئيسي
الوحدة 1 · الدرس 1 من 41/32 في الدورة~8 min
دروس الوحدة (1/4)

الأنماط الحرفية

في التعبير العادي، الأحرف الأبجدية الرقمية "العادية" تتطابق ببساطة مع نفسها: اكتب ciao كنمط وسيبحث المحرك عن السلسلة الفرعية ciao بالداخل النص. لا شيء أكثر سحرًا: مسح من اليسار إلى اليمين حسب الموضع.

Code
Pattern: ciao
Sample:  Buongiorno, ciao mondo! Ti dico anche ciao.
                     ^^^^                        ^^^^

تحمل المباراة دائمًا معلومتين أساسيتين:

  • النص المطابق (هنا ciao)؛
  • الفهرس (الإزاحة المستندة إلى 0) حيث يبدأ في العينة (هنا 12 و38).

بشكل افتراضي، يكون التعبير العادي حساسًا لحالة الأحرف: ciao لا يتطابق مع Ciao أو CIAO. لتجاهل حالة الأحرف، قم بإضافة العلامة i (غير حساسة لحالة الأحرف).

كيف يعمل المحرك

يقوم محرك regex بفحص النص حرفًا واحدًا في كل مرة. عند البحث عن النمط الحرفي ciao، فإنه يبحث أولاً عن الحرف c. بمجرد العثور عليه، فإنه يتحقق مما إذا كان الحرف التالي هو i، ثم a، وأخيرًا o. إذا فشلت أي من هذه التطابقات، يتراجع المحرك إلى موضع البداية التالي ويبدأ في البحث عن c مرة أخرى.

الأنماط الحرفية وعلامة g

بدون العلم g (العالمي)، يتوقف المحرك عند المباراة الأولى التي يجدها ويتوقف. مع g يستمر ويجمع كل مطابقة لاحقة حتى نهاية السلسلة. في هذه الدورة سنقوم دائمًا ما يتم تشغيل g: نريد أن نرى كل تطابق موجود في النص.

جربه

تمرين#regex.m1.l1.e1
المحاولات: 0جارٍ التحميل…

ابحث عن كل تكرار دقيق (حساس لحالة الأحرف) للكلمة `ciao` في العينة. تلميح: تذكر علامة "g".

جارٍ تحميل المحرر…
إظهار التلميح

النمط هو الكلمة نفسها. يجب ألا تتطابق الأحرف الكبيرة مع: no i flag.

الحل متاح بعد 3 من المحاولات

تمرين المراجعة

تمرين#regex.m1.l1.e2
المحاولات: 0جارٍ التحميل…

ابحث عن كل تكرار للكلمة "errore" في النص، متجاهلاً الأحرف الكبيرة/الصغيرة.

جارٍ تحميل المحرر…
إظهار التلميح

نفس كلمة النمط، ولكن أضف العلامة i (غير حساسة لحالة الأحرف) إلى جانب g.

الحل متاح بعد 3 من المحاولات

التحدي الإضافي

تمرين#regex.m1.l1.e3
المحاولات: 0جارٍ التحميل…

حدد وجمع كل التكرارات الدقيقة للكلمة `تحذير` (أحرف كبيرة، حساسة لحالة الأحرف) في نموذج نص السجل.

جارٍ تحميل المحرر…
إظهار التلميح

ابحث مباشرة عن السلسلة الحرفية WARNING، مع التأكد من عدم تنشيط علامة i.

الحل متاح بعد 3 من المحاولات