أنماط Regex وفئات المحارف
\d و\w و\s و. و^ و$ و+ و* و? و{n,m} وفئات المحارف [a-z] والنفي [^...].
أنماط Regex وفئات المحارف درس مجاني في Learn AI with Python على CoddyKit. هذا هو الدرس 1 من أصل 4. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في Learn AI with Python، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة Learn AI with Python 4 دروس في المجموع.
لماذا تهم التعبيرات النمطية للذكاء الاصطناعي النصي
يبدأ الذكاء الاصطناعي النصي بنص خام فوضوي. تُعد التعبيرات النمطية (regex) لغة موجزة للعثور على الأنماط واستخراجها — مثل أرقام الهواتف والتواريخ والوسوم وعناوين URL — حتى تتمكن من تنظيف النص وتنظيمه قبل تمريره إلى النموذج.
يعلّمك هذا المقرر الأنماط، ووحدة re، والمجموعات، ومسارًا عمليًا لتنظيف النصوص.
الأحرف الحرفية
أبسط نمط هو النص الحرفي: إذ يطابق تلك الأحرف نفسها تمامًا. تكون التعبيرات النمطية حساسة لحالة الأحرف افتراضيًا.
يطابق cat الكلمة "cat" داخل "the cat sat"، لكنه لا يطابق "Cat".
import re
print(re.findall("cat", "the cat sat on a cat mat"))
# ["cat", "cat"]حرف النقطة الوصفي
تطابق النقطة . أي حرف مفرد باستثناء سطر جديد. وهي محرف شامل.
يطابق c.t القيم "cat" و"cot" و"c9t" — أي قيمة تتكون من c، ثم حرف واحد، ثم t.
import re
print(re.findall("c.t", "cat cot cut c@t"))
# ["cat", "cot", "cut", "c@t"]فئات الأرقام والكلمات والمسافات
تغطي فئات الأحرف المختصرة مجموعات شائعة:
\d— رقم واحد (0-9)\w— حرف من أحرف الكلمة (حرف أو رقم أو شرطة سفلية)\s— مسافة بيضاء (مسافة أو علامة تبويب أو سطر جديد)
import re
print(re.findall("\d", "a1b2c3")) # ["1", "2", "3"]
print(re.findall("\w", "a_1!")) # ["a", "_", "1"]
print(re.findall("\s", "a b\tc")) # [" ", "\t"]الفئات المنفية
تنفي الصيغ المكتوبة بأحرف كبيرة الفئة:
\D— أي شيء ليس رقمًا\W— أي شيء ليس حرفًا من أحرف الكلمة\S— أي شيء ليس مسافة بيضاء
import re
print(re.findall("\D", "a1b2")) # ["a", "b"]
print(re.findall("\S", "a b c")) # ["a", "b", "c"]مجموعات الأحرف المخصصة باستخدام [ ]
تعرّف الأقواس المربعة مجموعتك الخاصة: طابق أي حرف واحد مدرج داخلها. وتُستخدم الشرطة للدلالة على النطاقات.
[aeiou]— أي حرف علّة[A-Za-z]— أي حرف[0-9]— أي رقم (وهو مماثل لـ\d)
import re
print(re.findall("[A-Za-z]", "ab12CD")) # letters only
print(re.findall("[aeiou]", "hello")) # ["e", "o"]المجموعات المنفية باستخدام [^ ]
تنفي علامة الإقحام داخل الأقواس المجموعة: طابق أي حرف غير مدرج فيها.
يطابق [^abc] أي شيء باستثناء a أو b أو c. (أما علامة الإقحام خارج الأقواس فهي مرساة سنشرحها لاحقًا.)
import re
print(re.findall("[^aeiou ]", "hello world"))
# consonants: ["h", "l", "l", "w", "r", "l", "d"]المراسي: ^ و $
تطابق المراسي المواضع، لا الأحرف:
^— بداية السلسلة (أو السطر)$— نهاية السلسلة (أو السطر)
يطابق ^Hello النص فقط إذا بدأ بـ "Hello".
import re
print(bool(re.search("^Hello", "Hello world"))) # True
print(bool(re.search("world$", "Hello world"))) # True
print(bool(re.search("^world", "Hello world"))) # Falseمحددات التكرار: + * ?
تحدد محددات التكرار عدد مرات تكرار العنصر السابق:
+— مرة واحدة أو أكثر*— صفر مرة أو أكثر?— صفر مرة أو مرة واحدة (اختياري)
import re
print(re.findall("\d+", "abc 123 de 45")) # ["123", "45"]
print(re.findall("ab*", "a ab abb")) # ["a", "ab", "abb"]
print(re.findall("colou?r", "color colour")) # both matchمحدد التكرار النطاقي {n,m}
تحدد الأقواس المعقوفة عددًا دقيقًا أو نطاقًا:
{3}— 3 بالضبط{2,4}— من 2 إلى 4{2,}— 2 أو أكثر
وهي مفيدة للعناصر ذات الطول الثابت، مثل الرموز البريدية أو أجزاء أرقام الهواتف.
import re
print(re.findall("\d{3}", "12 345 6789")) # ["345", "678"]
print(re.findall("\d{2,4}", "1 22 3333 55555"))دمج المكونات
تجمع الأنماط الحقيقية بين الفئات والمجموعات والمراسي ومحددات التكرار. يطابق هذا النمط رقم هاتف أمريكيًا بسيطًا مثل 555-123-4567:
\d{3}-\d{3}-\d{4} — ثلاثة أرقام، ثم شرطة، ثم ثلاثة أرقام، ثم شرطة، ثم أربعة أرقام.
import re
text = "Call 555-123-4567 or 999-888-7777"
print(re.findall("\d{3}-\d{3}-\d{4}", text))
# ["555-123-4567", "999-888-7777"]تحقق سريع: محددات التكرار
تريد مطابقة رقم واحد أو أكثر من الأرقام المتتالية.
مراجعة: الأنماط وفئات الأحرف
أصبحت تعرف الآن المكونات الأساسية للتعبيرات النمطية:
- النصوص الحرفية والمحرف الشامل
. - الفئات
\d \w \sونظائرها المنفية\D \W \S - المجموعات المخصصة
[A-Za-z]والمجموعات المنفية[^abc] - المراسي
^و$ - محددات التكرار
+ * ?والنطاقات{n,m}
التالي: دوال وحدة Python re.
الأسئلة الشائعة
هل درس «أنماط Regex وفئات المحارف» مجاني؟
نعم — نص درس «أنماط Regex وفئات المحارف» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة Learn AI with Python، انتقل إلى CoddyKit PRO. تتضمن دورة Learn AI with Python 4 دروس في المجموع.
ماذا ستتعلم في «أنماط Regex وفئات المحارف»؟
\d و\w و\s و. و^ و$ و+ و* و? و{n,m} وفئات المحارف [a-z] والنفي [^...]. تتمرن على Learn AI with Python مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.
هل أحتاج إلى خبرة سابقة لأبدأ Learn AI with Python؟
لا تُشترط خبرة سابقة. Learn AI with Python على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 1 من أصل 4.
كم من الوقت يستغرق درس «أنماط Regex وفئات المحارف»؟
معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.
هل يمكنني كتابة وتشغيل أكواد في درس Learn AI with Python هذا؟
نعم. كل درس في Learn AI with Python يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.
جميع الدروس في هذه الدورة
- أنماط Regex وفئات المحارف
- وحدة re: search وmatch وfindall وsub
- مجموعات الالتقاط والمجموعات المسماة
- تنظيف النصوص للذكاء الاصطناعي باستخدام Regex