تقنية

findall في بايثون: الأقواس تغير شكل النتيجة

عدد الالتقاطات صفر وواحد واثنان يغير العنصر الأول
العنصر الأول، لا القائمة كلها. [1] [2]

عدّ مجموعات الالتقاط. [1] [2]

الخلاصة السريعة

عدد مجموعات الالتقاط يحدد محتوى عناصر قائمة findall. [1] [2]

  • بلا التقاط: العنصر الأول a4، المطابقة كاملة. [1] [2]
  • بمجموعة واحدة: الأول a، الجزء الملتقط فقط. [1] [2]
  • بمجموعتين: الأول ('a','4')، زوج داخل القائمة. [1] [2]
  • (?:...) لا يضيف التقاطًا؛ النمط الرابع يعيد a4. [1] [2]
  • اختبرنا 3.12.14 بمدخل ASCII؛ دون مجموعات اختيارية أو مطابقات فارغة. [1] [2]

المثال

import re
s='a4 b9'
patterns=(r'[a-z][0-9]',
 r'([a-z])[0-9]',
 r'([a-z])([0-9])',
 r'(?:[a-z])[0-9]')
for p in patterns:
 print(re.findall(p,s))

[1] [2]

القوائم بالترتيب: ['a4','b9']، ['a','b']، [('a','4'),('b','9')]، ثم ['a4','b9']. [1] [2]

القائمة والعنصر

الناتج قائمة في الحالات الأربع؛ الحالة الثالثة تحتوي زوجين، لا أربع مطابقات. [1] [2]

غير الملتقطة

في النمط الرابع أقواس الحرف غير ملتقطة؛ يبقى العنصر مطابقة الحرف والرقم. [1] [2]

الحرف الملتقط وحده مقابل مطابقة كاملة بلا التقاط
النمط الكامل ونتيجته الأولى. [1] [2]

النطاق

نقارن شكل الناتج لهذه الأنماط؛ لا نسجل تاريخ التقاط مجموعة متكررة. [1] [2]

المراجع

  1. Python: findall والمجموعات
  2. CPython 3.12.14: بنية النتائج
  3. موضوع تك: لغة بايثون — مفردات
  4. موضوع تك: تطبيقات بايثون — مفردات

أُعدّ هذا المقال بمساعدة الذكاء الاصطناعي، وخضع لمراجعة ذاتية بالأداة نفسها. لا يُنسب إلى مراجع بشري أو خبير مستقل. منهجية المحتوى.