Python Academy · درس

re.sub والعلامات والأنماط المجمّعة

استبدل النصوص، واستخدم علامات مثل IGNORECASE، واجمع الأنماط لإعادة استخدامها

الدرس 4 من 414 خطوة

re.sub والعلامات والأنماط المجمّعة درس مجاني في Python Academy على CoddyKit. هذا هو الدرس 4 من أصل 4. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في Python Academy، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة Python Academy 4 دروس في المجموع.

مقدمة

تستبدل re.sub التطابقات. وتعدّل الرايات سلوك المطابقة. وتتميز الأنماط المجمّعة بالكفاءة عند إعادة استخدامها.

re.sub الأساسي

تستبدل `re.sub(pattern, repl, string)` جميع التطابقات بـ repl. وتحدّد الوسيطة الرابعة count= عدد الاستبدالات.
import re
result = re.sub(r'\d+', 'X', 'abc 123 def 456')
print(result)

re.sub مع المجموعات

استخدم `\1` أو `\2` أو `\g<1>` في الاستبدال لإدراج مجموعات الالتقاط. واستخدم `\g` للمجموعات المسماة.
import re
# Swap first and last name
result = re.sub(r'(\w+),\s*(\w+)', r'\2 \1', 'Smith, John')
print(result)

re.sub مع دالة

يمكن أن يكون الاستبدال كائنًا قابلًا للاستدعاء: `f(match) → replacement string`. وهذا يتيح إجراء تحويلات معقدة.
import re
def double_num(m): return str(int(m.group())*2)
result = re.sub(r'\d+', double_num, '1 cats and 2 dogs')
print(result)

re.IGNORECASE (re.I)

تجعل النمط غير حساس لحالة الأحرف. فالنمط `r'hello'` مع re.I يطابق 'HELLO' و'Hello' وغيرهما.
import re
print(re.findall(r'hello', 'Hello HELLO hello', re.I))

re.MULTILINE (re.M)

تجعل ^ و$ يطابقان بداية كل سطر ونهايته بدلًا من بداية السلسلة بأكملها ونهايتها.
import re
text = 'first\nsecond\nthird'
print(re.findall(r'^\w+', text, re.M))

re.DOTALL (re.S)

تجعل . يطابق محارف السطر الجديد أيضًا. وبدونها، يتوقف . عند حدود السطر.
import re
text = 'line1\nline2'
print(re.search(r'line1.line2', text, re.S).group())

re.VERBOSE (re.X)

تتيح التعليقات والمسافات البيضاء في النمط لتحسين قابلية القراءة. وتُهمل المسافات؛ استخدم `\ + space` لمسافة حرفية.
import re
pattern = re.compile(r'''
    (?P<year>\d{4})   # year
    -
    (?P<month>\d{2}) # month
    -
    (?P<day>\d{2})   # day
''', re.X)
print(pattern.search('2024-01-15').groupdict())

دمج الرايات

ادمج الرايات باستخدام | مثل: re.I | re.M. أو استخدم الرايات المضمّنة (?im) في بداية النمط.
import re
print(re.findall(r'^\w+', 'Hello\nWorld', re.I | re.M))

re.compile لتحسين الأداء

جمّع النمط مرة واحدة باستخدام re.compile(). واستدعِ الدوال على الكائن المجمّع: pat.search() وpat.findall().
import re
email_re = re.compile(r'[\w.+-]+@[\w-]+\.[\w.]+')
emails = ['user@example.com', 'invalid', 'test@test.org']
print([e for e in emails if email_re.fullmatch(e)])

re.escape()

تهرّب `re.escape(string)` جميع محارف التعبيرات النمطية الخاصة في سلسلة نصية، بحيث يمكن استخدامها كنمط حرفي.
import re
user_input = 'price.is $10+'
pattern = re.compile(re.escape(user_input))
text = 'The price.is $10+ today'
print(bool(pattern.search(text)))

تحقق سريع

أي راية تجعل . يطابق محارف السطر الجديد في التعبيرات النمطية في Python؟

مراجعة

re.sub: الاستبدال بسلسلة أو مجموعات أو دالة. الرايات: re.I (حالة الأحرف)، وre.M (تعدد الأسطر ^/$)، وre.S (النقطة تطابق \n)، وre.X (النمط الواضح). جمّع النمط لإعادة استخدامه.

واصل التقدم

أحسنتم! الدرس التالي في انتظاركم.
البدء مجانًا

تعلم Python مع معلم ذكاء اصطناعي — مجانًا

اكتب وقم بتشغيل أكوادك الفعلية في المتصفح، واحصل على مساعدة فورية من معلم ذكاء اصطناعي متاح 24/7، واستمر من حيث توقفت على الويب أو في التطبيق.

الدورات
76
الدروس
320

الأسئلة الشائعة

هل درس «re.sub والعلامات والأنماط المجمّعة» مجاني؟

نعم — نص درس «re.sub والعلامات والأنماط المجمّعة» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة Python Academy، انتقل إلى CoddyKit PRO. تتضمن دورة Python Academy 4 دروس في المجموع.

ماذا ستتعلم في «re.sub والعلامات والأنماط المجمّعة»؟

استبدل النصوص، واستخدم علامات مثل IGNORECASE، واجمع الأنماط لإعادة استخدامها تتمرن على Python Academy مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.

هل أحتاج إلى خبرة سابقة لأبدأ Python Academy؟

لا تُشترط خبرة سابقة. Python Academy على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 4 من أصل 4.

كم من الوقت يستغرق درس «re.sub والعلامات والأنماط المجمّعة»؟

معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.

هل يمكنني كتابة وتشغيل أكواد في درس Python Academy هذا؟

نعم. كل درس في Python Academy يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.

جميع الدروس في هذه الدورة

  1. أساسيات التعبيرات النمطية
  2. استخدام re.match وre.search وre.findall
  3. المجموعات والالتقاطات المسماة
  4. re.sub والعلامات والأنماط المجمّعة
← العودة إلى Python Academy