0Pricing
Python Academy · درس

استخدام re.match وre.search وre.findall

طبّق دوال re الأساسية للعثور على الأنماط في السلاسل النصية

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

مقدمة

توفر وحدة re عدة دوال لتطبيق الأنماط على السلاسل النصية.

re.match() — بداية السلسلة

تطابق `re.match(pattern, string)` في بداية السلسلة فقط. وتُعيد كائن Match أو None.
import re
print(re.match(r'\d+', '123abc'))  # match
print(re.match(r'\d+', 'abc123'))  # None

re.search() — في أي موضع

تبحث `re.search(pattern, string)` عن أول تطابق في أي موضع من السلسلة. وتُعيد Match أو None.
import re
m = re.search(r'\d+', 'abc 123 def')
if m: print(m.group())

re.findall() — جميع التطابقات

تُعيد `re.findall(pattern, string)` قائمة بجميع التطابقات غير المتداخلة على هيئة سلاسل نصية.
import re
print(re.findall(r'\d+', 'one 1 two 22 three 333'))

re.finditer() — مكرّر

تشبه `re.finditer()` الدالة findall()، لكنها تُعيد مكرّرًا من كائنات Match — مما يوفر الذاكرة مع السلاسل الكبيرة.
import re
for m in re.finditer(r'\d+', 'x1 y22 z333'):
    print(m.group(), m.start(), m.end())

دوال كائن Match

تُعيد `m.group()` السلسلة المتطابقة. وتُعيد `m.start()` و`m.end()` المواضع. أما `m.span()` فتُعيد (start, end).
import re
m = re.search(r'(\w+)@(\w+)', 'send to user@example')
if m:
    print(m.group(), m.group(1), m.group(2))

re.fullmatch()

تتطلب `re.fullmatch(pattern, string)` أن يطابق النمط السلسلة بأكملها.
import re
print(re.fullmatch(r'\d+', '123'))    # match
print(re.fullmatch(r'\d+', '123abc'))  # None

re.split()

تقسّم `re.split(r'\s+', string)` السلسلة وفق النمط. ويقسّم `r'[,;\s]+'` عند الفواصل والفواصل المنقوطة والمسافات.
import re
print(re.split(r'[,;\s]+', 'one,two; three four'))

re.sub() للاستبدال

تستبدل `re.sub(pattern, repl, string)` التطابقات. ويمكن أن تكون repl سلسلة نصية أو دالة.
import re
print(re.sub(r'\d+', 'NUM', 'I have 3 cats and 12 dogs'))

الأنماط المجمّعة

يجمّع `pattern = re.compile(r'\d+')` النمط مرة واحدة. استخدم `pattern.findall()` و`.search()` وغيرهما — فهذا أسرع عند الاستخدام المتكرر.
import re
digits = re.compile(r'\d+')
print(digits.findall('abc 123 def 456'))

الرايات

تعدّل `re.IGNORECASE (re.I)` و`re.MULTILINE (re.M)` و`re.DOTALL (re.S)` سلوك المطابقة.
import re
print(re.findall(r'hello', 'HELLO World', re.IGNORECASE))

تحقق سريع

ما الفرق بين `re.match()` و`re.search()`؟

مراجعة

re.match (البداية فقط)، وre.search (أول تطابق في أي موضع)، وre.findall (جميع التطابقات في قائمة)، وre.finditer (جميع التطابقات على هيئة كائنات Match)، وre.sub (استبدال)، وre.compile (إعادة استخدام النمط).

واصل التقدم

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

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

هل درس «استخدام re.match وre.search وre.findall» مجاني؟

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

ماذا ستتعلم في «استخدام re.match وre.search وre.findall»؟

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

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

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

كم من الوقت يستغرق درس «استخدام re.match وre.search وre.findall»؟

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

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

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

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

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