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

حرف البدل: النقطة `.`

النقطة . في التعبير العادي هي حرف البدل: فهي تطابق أي مفردة الحرف\u2026 مع استثناء واحد مهم: فهو **لا يتطابق مع السطر الجديد ** (\n).

Code
Pattern: c.t
Sample:  cat cot cut c@t c\nt
         ^^^ ^^^ ^^^ ^^^

ثلاثة أحرف: c، أي حرف، t. لا يوجد سطر جديد بينهما، لذا c\nt غير متطابق (افتراضيًا).

النقطة مفيدة للغاية ولكنها خطيرة أيضًا: تُستخدم دون ضبطها يلتقط أكثر مما كنت تنوي. جنبا إلى جنب مع محددات الكمية في الوحدة 2 (.*، .+?) إنه مصدر 90% من الأنماط التي "لا تعمل بالطريقة التي أعمل بها". المتوقع".

العلامة s: "dotAll"

باستخدام العلامة s (وتسمى أيضًا dotAll أو سطر واحد) تتطابق النقطة كل حرف، بما في ذلك السطر الجديد. مفيد لاستخراج الكتل التي تمتد خطوط متعددة.

Code
Pattern: <p>.*</p>
Flag:    gs
Sample:  <p>prima\nseconda</p>
         ^^^^^^^^^^^^^^^^^^^^^

حدود وسلوك حرف البدل النقطي

النقطة . عبارة عن حرف بدل قوي، ولكن افتراضيًا لا تتطابق مع أحرف السطر الجديد (\\n). إذا كنت تريد أن تتطابق النقطة مع كل شيء تمامًا، بما في ذلك الأسطر الجديدة، فيجب عليك تمكين علامة s (dotAll). كن حذرًا عند دمج النقطة مع محددات الكمية (.*)، لأنها تميل إلى استهلاك الكثير من النص (السلوك الجشع).

جربه

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

ابحث عن كل ثلاثة أحرف مفصولة بين قوسين، على سبيل المثال: `(اي بي سي)`، `(xyz)`. استخدم حرف البدل للأحرف الداخلية الثلاثة.

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

ثلاث نقاط لثلاثة أحرف عشوائية. الأقواس عبارة عن أحرف وصفية: يجب تهريبها باستخدام \\.

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

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

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

قم باستخراج الكتلة الموجودة بين `[INIZIO]` و`[FINE]`، والتي يمكن أن تمتد إلى عدة أسطر. ستحتاج إلى علامة s حتى تتطابق النقطة أيضًا مع الأسطر الجديدة، والإصدار "البطيء" من مُحدِّد الكمية (`.*?`، الوحدة 2).

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

بدون علامة s، تتوقف النقطة في نهاية السطر: قم بإضافتها. النموذج .*؟ (كسول) يوقف المباراة عند أول [فاين].

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

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

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

Find all 3-character sequences starting with `c` and ending with `t` (e.g. `cat`, `cot`, `c-t`).

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

يستخدم النمط النقطة "." لتمثيل حرف البدل الأوسط.

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