0Pricing
Python Academy · درس

المجموعات والالتقاطات المسماة

استخرج البيانات باستخدام مجموعات الالتقاط وصياغة المجموعات المسماة

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

مقدمة

تستخرج مجموعات الالتقاط أجزاءً محددة من التطابق. وتجعل المجموعات المسماة البيانات المستخرجة موضّحة ذاتيًا.

مجموعة الالتقاط الأساسية

تنشئ الأقواس () مجموعة التقاط. وتُعيد `m.group(1)` تطابق المجموعة الأولى.
import re
m = re.search(r'(\d{4})-(\d{2})-(\d{2})', '2024-01-15')
if m: print(m.group(1), m.group(2), m.group(3))

m.groups()

تُعيد `m.groups()` جميع مجموعات الالتقاط على هيئة صفّ.
import re
m = re.search(r'(\w+)@(\w+)\.(\w+)', 'user@example.com')
if m: print(m.groups())

المجموعات المسماة

ينشئ `(?Ppattern)` مجموعة مسماة. ويمكن الوصول إليها باستخدام `m.group('name')` أو `m.groupdict()`.
import re
m = re.search(
    r'(?P<year>\d{4})-(?P<month>\d{2})-(?P<day>\d{2})',
    '2024-01-15'
)
if m: print(m.groupdict())

المجموعات غير الملتقِطة

تجمع `(?:pattern)` المحارف دون التقاطها. وهي مفيدة عندما تحتاج إلى التجميع لمحددات التكرار، لكنك لا تحتاج إلى التطابق.
import re
print(re.findall(r'(?:cat|dog)s?', 'cats dogs cat dog'))

المراجع الخلفية

يشير `\1` داخل النمط إلى ما طابقته المجموعة 1. وهو مفيد للعثور على الكلمات المكررة.
import re
# Match repeated words
m = re.search(r'\b(\w+)\s+\1\b', 'the the quick brown', re.IGNORECASE)
if m: print('repeated:', m.group())

findall مع المجموعات

عندما يحتوي النمط على مجموعات، تُعيد findall قائمة من صفوف المجموعات، لا التطابقات الكاملة.
import re
result = re.findall(r'(\w+)=(\w+)', 'x=1 y=2 z=3')
print(result)

استخدام المجموعات في re.sub()

في re.sub()، تُدرج `\1` أو `\g` مجموعات الالتقاط في سلسلة الاستبدال.
import re
result = re.sub(r'(\w+)\s(\w+)', r'\2 \1', 'John Smith')
print(result)

النظر إلى الأمام (?= )

إن `(?=expr)` نظرة إيجابية إلى الأمام — تطابق الموضع الذي يتبعه expr دون استهلاكه.
import re
# Prices followed by USD
print(re.findall(r'\d+(?= USD)', '100 USD 200 EUR 300 USD'))

النظر إلى الخلف (?<= )

إن `(?<=expr)` نظرة إيجابية إلى الخلف — تطابق الموضع الذي يسبقه expr دون استهلاكه.
import re
print(re.findall(r'(?<=\$)\d+', 'paid $100 and $200'))

مرجع خلفي مسمى

يشير `(?P=name)` في النمط إلى قيمة مجموعة مسماة. وهو مفيد لمطابقة وسوم الإغلاق.
import re
m = re.search(r'<(?P<tag>\w+)>.*?</(?P=tag)>', '<b>hello</b>')
if m: print(m.group())

تحقق سريع

كيف تصل إلى مجموعة التقاط مسماة باسم 'year' من كائن التطابق m؟

مراجعة

تلتقط المجموعات () أجزاءً من النص. استخدم m.group(1) وm.groups() وm.groupdict(). المجموعات المسماة: (?P). غير الملتقِطة: (?:). المراجع الخلفية: \1 أو \g في عمليات الاستبدال.

واصل التقدم

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

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

هل درس «المجموعات والالتقاطات المسماة» مجاني؟

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

ماذا ستتعلم في «المجموعات والالتقاطات المسماة»؟

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

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

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

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

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

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

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

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

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