مقدمة إلى Regular Expressions (Regex)
افهموا صياغة Regular Expressions ومفاهيمها الأساسية لمطابقة أنماط النصوص بقوة.
مقدمة إلى Regular Expressions (Regex) درس مجاني في DevOps Bootcamp على CoddyKit. هذا هو الدرس 1 من أصل 4. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في DevOps Bootcamp، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة DevOps Bootcamp 4 دروس في المجموع.
ما هي التعابير النمطية؟
التعابير النمطية، التي يُختصر اسمها غالبًا إلى Regex، هي أنماط قوية تُستخدم للبحث في النصوص ومعالجتها.
فكّر فيها على أنها عبارات بحث فائقة القوة يمكنها مطابقة تسلسلات أو محارف محددة، بل وحتى مواضع داخل النص.
تُستخدم على نطاق واسع في البرمجة والبرمجة النصية وأدوات سطر الأوامر مثل grep وsed وawk في Linux.
مطابقة المحارف الحرفية
يطابق أبسط تعبير نمطي المحارف الحرفية تمامًا. فإذا بحثت عن 'apple'، فسيعثر على 'apple' تمامًا.
لنستخدم الأمر grep (طباعة التعابير النمطية العامة) لشرح هذه المطابقة الأساسية.
echo "apple" > fruits.txt
echo "banana" >> fruits.txt
echo "pineapple" >> fruits.txt
grep "apple" fruits.txt
rm fruits.txtالنقطة: أي محرف مفرد
النقطة (.) محرف خاص يطابق أي محرف مفرد باستثناء محرف السطر الجديد.
إنها تشبه المحرف البديل لموضع واحد. فعلى سبيل المثال، يطابق c.t الكلمات "cat" أو "cot" أو "cut".
echo "cat" > words.txt
echo "cot" >> words.txt
echo "cut" >> words.txt
echo "coat" >> words.txt
grep "c.t" words.txt
rm words.txtالنجمة: صفر أو أكثر (*)
النجمة (*) مُكرِّر يطابق صفرًا أو أكثر من تكرارات المحرف أو المجموعة التي تسبقها مباشرةً.
على سبيل المثال، يطابق colou*r الكلمتين "color" (من دون أي حرف 'u') و"colour" (مع حرف 'u' واحد).
echo "color" > spellings.txt
echo "colour" >> spellings.txt
echo "colouuur" >> spellings.txt
echo "cold" >> spellings.txt
grep "colou*r" spellings.txt
rm spellings.txtعلامة الجمع: واحد أو أكثر (+)
تطابق علامة الجمع (+) واحدًا أو أكثر من تكرارات المحرف أو المجموعة السابقة.
وعلى خلاف *، يجب أن يظهر العنصر مرة واحدة على الأقل. لذلك، يطابق go+gle الكلمتين "google" و"gooogle"، لكنه لا يطابق "ggle".
ملاحظة: لكي تعمل الرموز + و? و{} مباشرةً مع grep، غالبًا ما تحتاجون إلى استخدام الخيار -E للتعبيرات النمطية الموسَّعة.
echo "google" > search.txt
echo "goooogle" >> search.txt
echo "ggle" >> search.txt
grep -E "go+gle" search.txt
rm search.txtعلامة الاستفهام: صفر أو واحد (?)
تطابق علامة الاستفهام (?) صفرًا أو تكرارًا واحدًا للمحرف أو المجموعة السابقة.
وهي تجعل المحرف اختياريًا. فعلى سبيل المثال، يطابق colou?r الكلمتين "color" (من دون حرف 'u') و"colour" (مع حرف 'u' واحد).
echo "color" >> spellings.txt
echo "colour" >> spellings.txt
echo "colouuur" >> spellings.txt
grep -E "colou?r" spellings.txt
rm spellings.txtالمثبِّتان: البداية (^) والنهاية ($)
لا تطابق المثبِّتات محارف، بل تطابق مواضع محددة في النص.
- يطابق
^بداية السطر. - يطابق
$نهاية السطر.
مثال: يطابق ^apple الكلمة "apple" فقط إذا كانت في بداية السطر. ويطابق apple$ الكلمة "apple" فقط إذا كانت في نهاية السطر.
echo "apple pie" > menu.txt
echo "fresh apple" >> menu.txt
echo "apple" >> menu.txt
grep -E "^apple" menu.txt
grep -E "apple$" menu.txt
rm menu.txtفئات المحارف: الأقواس المربعة ([])
تعرّف الأقواس المربعة ([]) فئة محارف تطابق أي محرف مفرد ضمن المجموعة.
- يطابق
[aeiou]أي حرف علّة مفرد. - يطابق
[0-9]أي رقم مفرد. - يطابق
[a-zA-Z]أي حرف مفرد.
يمكنكم أيضًا نفي الفئة باستخدام [^...]؛ فمثلًا، يطابق [^aeiou] أي محرف لا يكون حرف علّة.
echo "cat" > animals.txt
echo "bat" >> animals.txt
echo "rat" >> animals.txt
echo "cot" >> animals.txt
grep -E "[cb]at" animals.txt
grep -E "[^cbr]at" animals.txt
rm animals.txtالمكرِّرات: الأقواس المعقوفة ({})
الأقواس المعقوفة ({}) مكرِّرات تحدد العدد الدقيق للتكرارات للمحرف أو المجموعة السابقة.
- يطابق
a{3}النص "aaa" - يطابق
a{2,}النصوص "aa" و"aaa" و"aaaa"، وغيرها (مرتان على الأقل) - يطابق
a{2,4}النصوص "aa" و"aaa" و"aaaa" (من مرتين إلى أربع مرات)
تذكّروا استخدام grep -E مع هذه المكرِّرات.
echo "helllo" > greetings.txt
echo "hello" >> greetings.txt
echo "helo" >> greetings.txt
grep -E "hel{2,3}o" greetings.txt
rm greetings.txtاختبار سريع للتعبيرات النمطية
تأملوا السلاسل النصية التالية:
bananabanaanabanaananabna
ما التعبير النمطي الذي سيطابق فقط "banana" و"banaana"؟
مراجعة أساسيات التعبيرات النمطية
لقد تعلّمتم أساسيات التعبيرات النمطية!
- تستخدم التعبيرات النمطية أنماطًا للبحث في النص ومعالجته.
- تطابق المحارف الحرفية نفسها.
- توفر المحارف الخاصة مثل
.و*و+و?و^و$و[]و{}إمكانات قوية للمطابقة.
بعد ذلك، ستطبّقون هذه الأنماط على البحث المتقدم في النصوص باستخدام الأمر grep وخياراته المتنوعة.
الأسئلة الشائعة
هل درس «مقدمة إلى Regular Expressions (Regex)» مجاني؟
نعم — نص درس «مقدمة إلى Regular Expressions (Regex)» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة DevOps Bootcamp، انتقل إلى CoddyKit PRO. تتضمن دورة DevOps Bootcamp 4 دروس في المجموع.
ماذا ستتعلم في «مقدمة إلى Regular Expressions (Regex)»؟
افهموا صياغة Regular Expressions ومفاهيمها الأساسية لمطابقة أنماط النصوص بقوة. تتمرن على DevOps Bootcamp مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.
هل أحتاج إلى خبرة سابقة لأبدأ DevOps Bootcamp؟
لا تُشترط خبرة سابقة. DevOps Bootcamp على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 1 من أصل 4.
كم من الوقت يستغرق درس «مقدمة إلى Regular Expressions (Regex)»؟
معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.
هل يمكنني كتابة وتشغيل أكواد في درس DevOps Bootcamp هذا؟
نعم. كل درس في DevOps Bootcamp يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.
جميع الدروس في هذه الدورة
- مقدمة إلى Regular Expressions (Regex)
- Grep المتقدم باستخدام Regex
- دمج Regex مع sed/awk
- مجموعات الالتقاط والمراجع الخلفية والاستبدال