دروس الوحدة (3/4)
حرف البدل: النقطة `.`
النقطة . في التعبير العادي هي حرف البدل: فهي تطابق أي مفردة
الحرف\u2026 مع استثناء واحد مهم: فهو **لا يتطابق مع
السطر الجديد ** (\n).
Pattern: c.t
Sample: cat cot cut c@t c\nt
^^^ ^^^ ^^^ ^^^ثلاثة أحرف: c، أي حرف، t. لا يوجد سطر جديد بينهما، لذا c\nt
غير متطابق (افتراضيًا).
النقطة مفيدة للغاية ولكنها خطيرة أيضًا: تُستخدم دون ضبطها
يلتقط أكثر مما كنت تنوي. جنبا إلى جنب مع محددات الكمية في الوحدة 2
(.*، .+?) إنه مصدر 90% من الأنماط التي "لا تعمل بالطريقة التي أعمل بها".
المتوقع".
العلامة s: "dotAll"
باستخدام العلامة s (وتسمى أيضًا dotAll أو سطر واحد) تتطابق النقطة
كل حرف، بما في ذلك السطر الجديد. مفيد لاستخراج الكتل التي تمتد
خطوط متعددة.
Pattern: <p>.*</p>
Flag: gs
Sample: <p>prima\nseconda</p>
^^^^^^^^^^^^^^^^^^^^^حدود وسلوك حرف البدل النقطي
النقطة . عبارة عن حرف بدل قوي، ولكن افتراضيًا لا تتطابق مع أحرف السطر الجديد (\\n). إذا كنت تريد أن تتطابق النقطة مع كل شيء تمامًا، بما في ذلك الأسطر الجديدة، فيجب عليك تمكين علامة s (dotAll). كن حذرًا عند دمج النقطة مع محددات الكمية (.*)، لأنها تميل إلى استهلاك الكثير من النص (السلوك الجشع).
جربه
ابحث عن كل ثلاثة أحرف مفصولة بين قوسين، على سبيل المثال: `(اي بي سي)`، `(xyz)`. استخدم حرف البدل للأحرف الداخلية الثلاثة.
إظهار التلميح
ثلاث نقاط لثلاثة أحرف عشوائية. الأقواس عبارة عن أحرف وصفية: يجب تهريبها باستخدام \\.
الحل متاح بعد 3 من المحاولات
تمرين المراجعة
قم باستخراج الكتلة الموجودة بين `[INIZIO]` و`[FINE]`، والتي يمكن أن تمتد إلى عدة أسطر. ستحتاج إلى علامة s حتى تتطابق النقطة أيضًا مع الأسطر الجديدة، والإصدار "البطيء" من مُحدِّد الكمية (`.*?`، الوحدة 2).
إظهار التلميح
بدون علامة s، تتوقف النقطة في نهاية السطر: قم بإضافتها. النموذج .*؟ (كسول) يوقف المباراة عند أول [فاين].
الحل متاح بعد 3 من المحاولات
التحدي الإضافي
Find all 3-character sequences starting with `c` and ending with `t` (e.g. `cat`, `cot`, `c-t`).
إظهار التلميح
يستخدم النمط النقطة "." لتمثيل حرف البدل الأوسط.
الحل متاح بعد 3 من المحاولات